//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. // //------------------------------------------------------------------------------ #pragma warning disable 1591 // TODO: add documentation namespace WixToolset.Harvesters.Serialize { using System; using System.CodeDom.Compiler; using System.Collections; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Xml; /// /// Values of this type will either be "attached" or "detached". /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum BurnContainerType { IllegalValue = int.MaxValue, NotSet = -1, attached, detached, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Enums { /// /// Parses a BurnContainerType from a string. /// public static BurnContainerType ParseBurnContainerType(string value) { BurnContainerType parsedValue; Enums.TryParseBurnContainerType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a BurnContainerType from a string. /// public static bool TryParseBurnContainerType(string value, out BurnContainerType parsedValue) { parsedValue = BurnContainerType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("attached" == value)) { parsedValue = BurnContainerType.attached; } else { if (("detached" == value)) { parsedValue = BurnContainerType.detached; } else { parsedValue = BurnContainerType.IllegalValue; return false; } } return true; } /// /// Parses a BurnExeProtocolType from a string. /// public static BurnExeProtocolType ParseBurnExeProtocolType(string value) { BurnExeProtocolType parsedValue; Enums.TryParseBurnExeProtocolType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a BurnExeProtocolType from a string. /// public static bool TryParseBurnExeProtocolType(string value, out BurnExeProtocolType parsedValue) { parsedValue = BurnExeProtocolType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("none" == value)) { parsedValue = BurnExeProtocolType.none; } else { if (("burn" == value)) { parsedValue = BurnExeProtocolType.burn; } else { if (("netfx4" == value)) { parsedValue = BurnExeProtocolType.netfx4; } else { parsedValue = BurnExeProtocolType.IllegalValue; return false; } } } return true; } /// /// Parses a YesNoType from a string. /// public static YesNoType ParseYesNoType(string value) { YesNoType parsedValue; Enums.TryParseYesNoType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a YesNoType from a string. /// public static bool TryParseYesNoType(string value, out YesNoType parsedValue) { parsedValue = YesNoType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("no" == value)) { parsedValue = YesNoType.no; } else { if (("yes" == value)) { parsedValue = YesNoType.yes; } else { parsedValue = YesNoType.IllegalValue; return false; } } return true; } /// /// Parses a YesNoButtonType from a string. /// public static YesNoButtonType ParseYesNoButtonType(string value) { YesNoButtonType parsedValue; Enums.TryParseYesNoButtonType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a YesNoButtonType from a string. /// public static bool TryParseYesNoButtonType(string value, out YesNoButtonType parsedValue) { parsedValue = YesNoButtonType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("no" == value)) { parsedValue = YesNoButtonType.no; } else { if (("yes" == value)) { parsedValue = YesNoButtonType.yes; } else { if (("button" == value)) { parsedValue = YesNoButtonType.button; } else { parsedValue = YesNoButtonType.IllegalValue; return false; } } } return true; } /// /// Parses a YesNoDefaultType from a string. /// public static YesNoDefaultType ParseYesNoDefaultType(string value) { YesNoDefaultType parsedValue; Enums.TryParseYesNoDefaultType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a YesNoDefaultType from a string. /// public static bool TryParseYesNoDefaultType(string value, out YesNoDefaultType parsedValue) { parsedValue = YesNoDefaultType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("default" == value)) { parsedValue = YesNoDefaultType.@default; } else { if (("no" == value)) { parsedValue = YesNoDefaultType.no; } else { if (("yes" == value)) { parsedValue = YesNoDefaultType.yes; } else { parsedValue = YesNoDefaultType.IllegalValue; return false; } } } return true; } /// /// Parses a BundleCacheType from a string. /// public static BundleCacheType ParseBundleCacheType(string value) { Enums.TryBundleCacheType(value, out var parsedValue); return parsedValue; } /// /// Tries to parse a YesNoAlwaysType from a string. /// public static bool TryBundleCacheType(string value, out BundleCacheType parsedValue) { parsedValue = BundleCacheType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("force" == value)) { parsedValue = BundleCacheType.force; } else { if (("remove" == value)) { parsedValue = BundleCacheType.remove; } else { if (("keep" == value)) { parsedValue = BundleCacheType.keep; } else { return false; } } } return true; } /// /// Parses a RegistryRootType from a string. /// public static RegistryRootType ParseRegistryRootType(string value) { RegistryRootType parsedValue; Enums.TryParseRegistryRootType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a RegistryRootType from a string. /// public static bool TryParseRegistryRootType(string value, out RegistryRootType parsedValue) { parsedValue = RegistryRootType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("HKMU" == value)) { parsedValue = RegistryRootType.HKMU; } else { if (("HKCR" == value)) { parsedValue = RegistryRootType.HKCR; } else { if (("HKCU" == value)) { parsedValue = RegistryRootType.HKCU; } else { if (("HKLM" == value)) { parsedValue = RegistryRootType.HKLM; } else { if (("HKU" == value)) { parsedValue = RegistryRootType.HKU; } else { parsedValue = RegistryRootType.IllegalValue; return false; } } } } } return true; } /// /// Parses a ExitType from a string. /// public static ExitType ParseExitType(string value) { ExitType parsedValue; Enums.TryParseExitType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ExitType from a string. /// public static bool TryParseExitType(string value, out ExitType parsedValue) { parsedValue = ExitType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("success" == value)) { parsedValue = ExitType.success; } else { if (("cancel" == value)) { parsedValue = ExitType.cancel; } else { if (("error" == value)) { parsedValue = ExitType.error; } else { if (("suspend" == value)) { parsedValue = ExitType.suspend; } else { parsedValue = ExitType.IllegalValue; return false; } } } } return true; } /// /// Parses a InstallUninstallType from a string. /// public static InstallUninstallType ParseInstallUninstallType(string value) { InstallUninstallType parsedValue; Enums.TryParseInstallUninstallType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a InstallUninstallType from a string. /// public static bool TryParseInstallUninstallType(string value, out InstallUninstallType parsedValue) { parsedValue = InstallUninstallType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("install" == value)) { parsedValue = InstallUninstallType.install; } else { if (("uninstall" == value)) { parsedValue = InstallUninstallType.uninstall; } else { if (("both" == value)) { parsedValue = InstallUninstallType.both; } else { parsedValue = InstallUninstallType.IllegalValue; return false; } } } return true; } /// /// Parses a SequenceType from a string. /// public static SequenceType ParseSequenceType(string value) { SequenceType parsedValue; Enums.TryParseSequenceType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a SequenceType from a string. /// public static bool TryParseSequenceType(string value, out SequenceType parsedValue) { parsedValue = SequenceType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("both" == value)) { parsedValue = SequenceType.both; } else { if (("first" == value)) { parsedValue = SequenceType.first; } else { if (("execute" == value)) { parsedValue = SequenceType.execute; } else { if (("ui" == value)) { parsedValue = SequenceType.ui; } else { parsedValue = SequenceType.IllegalValue; return false; } } } } return true; } /// /// Parses a CompressionLevelType from a string. /// public static CompressionLevelType ParseCompressionLevelType(string value) { CompressionLevelType parsedValue; Enums.TryParseCompressionLevelType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a CompressionLevelType from a string. /// public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) { parsedValue = CompressionLevelType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("high" == value)) { parsedValue = CompressionLevelType.high; } else { if (("low" == value)) { parsedValue = CompressionLevelType.low; } else { if (("medium" == value)) { parsedValue = CompressionLevelType.medium; } else { if (("mszip" == value)) { parsedValue = CompressionLevelType.mszip; } else { if (("none" == value)) { parsedValue = CompressionLevelType.none; } else { parsedValue = CompressionLevelType.IllegalValue; return false; } } } } } return true; } } /// /// The list of communcation protocols with executable packages Burn supports. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum BurnExeProtocolType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The executable package does not support a communication protocol. /// none, /// /// The executable package is another Burn bundle and supports the Burn communication protocol. /// burn, /// /// The executable package implements the .NET Framework v4.0 communication protocol. /// netfx4, } /// /// Values of this type will either be "yes" or "no". /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum YesNoType { IllegalValue = int.MaxValue, NotSet = -1, no, yes, } /// /// Values of this type will either be "button", "yes" or "no". /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum YesNoButtonType { IllegalValue = int.MaxValue, NotSet = -1, no, yes, button, } /// /// Values of this type will either be "default", "yes", or "no". /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum YesNoDefaultType { IllegalValue = int.MaxValue, NotSet = -1, @default, no, yes, } /// /// Values of this type will either be "always", "yes", or "no". /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum BundleCacheType { NotSet = -1, force, remove, keep, } /// /// Values of this type represent possible registry roots. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum RegistryRootType { IllegalValue = int.MaxValue, NotSet = -1, /// /// A per-user installation will make the operation occur under HKEY_CURRENT_USER. /// A per-machine installation will make the operation occur under HKEY_LOCAL_MACHINE. /// HKMU, /// /// Operation occurs under HKEY_CLASSES_ROOT. When using Windows 2000 or later, the installer writes or removes the value /// from the HKCU\Software\Classes hive during per-user installations. When using Windows 2000 or later operating systems, /// the installer writes or removes the value from the HKLM\Software\Classes hive during per-machine installations. /// HKCR, /// /// Operation occurs under HKEY_CURRENT_USER. It is recommended to set the KeyPath='yes' attribute when setting this value for writing values /// in order to ensure that the installer writes the necessary registry entries when there are multiple users on the same computer. /// HKCU, /// /// Operation occurs under HKEY_LOCAL_MACHINE. /// HKLM, /// /// Operation occurs under HKEY_USERS. /// HKU, } /// /// Value indicates that this action is executed if the installer returns the associated exit type. Each exit type can be used with no more than one action. /// Multiple actions can have exit types assigned, but every action and exit type must be different. Exit types are typically used with dialog boxes. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ExitType { IllegalValue = int.MaxValue, NotSet = -1, success, cancel, error, suspend, } /// /// Specifies whether an action occur on install, uninstall or both. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum InstallUninstallType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The action should happen during install (msiInstallStateLocal or msiInstallStateSource). /// install, /// /// The action should happen during uninstall (msiInstallStateAbsent). /// uninstall, /// /// The action should happen during both install and uninstall. /// both, } /// /// Controls which sequences the item assignment is sequenced in. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum SequenceType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Schedules the assignment in the InstallUISequence and the InstallExecuteSequence. /// both, /// /// Schedules the assignment to run in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped. /// first, /// /// Schedules the assignment only in the the InstallExecuteSequence. /// execute, /// /// Schedules the assignment only in the the InstallUISequence. /// ui, } /// /// Indicates the compression level for a cabinet. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum CompressionLevelType { IllegalValue = int.MaxValue, NotSet = -1, high, low, medium, mszip, none, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public abstract class ActionModuleSequenceType : ISchemaElement, ISetAttributes { private string afterField; private bool afterFieldSet; private string beforeField; private bool beforeFieldSet; private YesNoType overridableField; private bool overridableFieldSet; private int sequenceField; private bool sequenceFieldSet; private YesNoType suppressField; private bool suppressFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// The name of an action that this action should come after. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// The name of an action that this action should come before. /// public string Before { get { return this.beforeField; } set { this.beforeFieldSet = true; this.beforeField = value; } } /// /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. /// public YesNoType Overridable { get { return this.overridableField; } set { this.overridableFieldSet = true; this.overridableField = value; } } /// /// A value used to indicate the position of this action in a sequence. /// public int Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } /// /// If yes, this action will not occur. /// public YesNoType Suppress { get { return this.suppressField; } set { this.suppressFieldSet = true; this.suppressField = value; } } /// /// Text node specifies the condition of the action. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.beforeFieldSet) { writer.WriteAttributeString("Before", this.beforeField); } if (this.overridableFieldSet) { if ((this.overridableField == YesNoType.no)) { writer.WriteAttributeString("Overridable", "no"); } if ((this.overridableField == YesNoType.yes)) { writer.WriteAttributeString("Overridable", "yes"); } } if (this.sequenceFieldSet) { writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); } if (this.suppressFieldSet) { if ((this.suppressField == YesNoType.no)) { writer.WriteAttributeString("Suppress", "no"); } if ((this.suppressField == YesNoType.yes)) { writer.WriteAttributeString("Suppress", "yes"); } } if (this.contentFieldSet) { writer.WriteString(this.contentField); } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("Before" == name)) { this.beforeField = value; this.beforeFieldSet = true; } if (("Overridable" == name)) { this.overridableField = Enums.ParseYesNoType(value); this.overridableFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sequenceFieldSet = true; } if (("Suppress" == name)) { this.suppressField = Enums.ParseYesNoType(value); this.suppressFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public abstract class ActionSequenceType : ISchemaElement, ISetAttributes { private int sequenceField; private bool sequenceFieldSet; private YesNoType suppressField; private bool suppressFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// A value used to indicate the position of this action in a sequence. /// public int Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } /// /// If yes, this action will not occur. /// public YesNoType Suppress { get { return this.suppressField; } set { this.suppressFieldSet = true; this.suppressField = value; } } public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } if (this.sequenceFieldSet) { writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); } if (this.suppressFieldSet) { if ((this.suppressField == YesNoType.no)) { writer.WriteAttributeString("Suppress", "no"); } if ((this.suppressField == YesNoType.yes)) { writer.WriteAttributeString("Suppress", "yes"); } } if (this.contentFieldSet) { writer.WriteString(this.contentField); } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Sequence" == name)) { this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sequenceFieldSet = true; } if (("Suppress" == name)) { this.suppressField = Enums.ParseYesNoType(value); this.suppressFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// This is the top-level container element for every wxs file. Among the possible children, /// the Bundle, Package, Module, Patch, and PatchCreation elements are analogous to the main function in a C program. /// There can only be one of these present when linking occurs. Package compiles into an msi file, /// Module compiles into an msm file, PatchCreation compiles into a pcp file. The Fragment element /// is an atomic unit which ultimately links into either a Package, Module, or PatchCreation. The /// Fragment can either be completely included or excluded during linking. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Wix : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string requiredVersionField; private bool requiredVersionFieldSet; private ISchemaElement parentElement; public Wix() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Bundle))); childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Package))); childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Module))); childCollection2.AddItem(new ElementCollection.ChoiceItem(typeof(Patch))); childCollection1.AddCollection(childCollection2); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(Fragment))); childCollection0.AddCollection(childCollection1); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCreation))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Required version of the WiX toolset to compile this input file. /// public string RequiredVersion { get { return this.requiredVersionField; } set { this.requiredVersionFieldSet = true; this.requiredVersionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Bundle" == childName)) { childValue = new Bundle(); } if (("Package" == childName)) { childValue = new Package(); } if (("Module" == childName)) { childValue = new Module(); } if (("Patch" == childName)) { childValue = new Patch(); } if (("Fragment" == childName)) { childValue = new Fragment(); } if (("PatchCreation" == childName)) { childValue = new PatchCreation(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Wix", "http://wixtoolset.org/schemas/v4/wxs"); if (this.requiredVersionFieldSet) { writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("RequiredVersion" == name)) { this.requiredVersionField = value; this.requiredVersionFieldSet = true; } } } /// /// This is the top-level container element for every wxi file. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Include : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public Include() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Include", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// The root element for creating bundled packages. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Bundle : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string aboutUrlField; private bool aboutUrlFieldSet; private string copyrightField; private bool copyrightFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private YesNoButtonType disableModifyField; private bool disableModifyFieldSet; private YesNoType disableRemoveField; private bool disableRemoveFieldSet; private YesNoType disableRepairField; private bool disableRepairFieldSet; private string helpTelephoneField; private bool helpTelephoneFieldSet; private string helpUrlField; private bool helpUrlFieldSet; private string iconSourceFileField; private bool iconSourceFileFieldSet; private string manufacturerField; private bool manufacturerFieldSet; private string nameField; private bool nameFieldSet; private string parentNameField; private bool parentNameFieldSet; private string splashScreenSourceFileField; private bool splashScreenSourceFileFieldSet; private string tagField; private bool tagFieldSet; private string updateUrlField; private bool updateUrlFieldSet; private string upgradeCodeField; private bool upgradeCodeFieldSet; private string versionField; private bool versionFieldSet; private string conditionField; private bool conditionFieldSet; private ISchemaElement parentElement; public Bundle() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ApprovedExeForElevation))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Log))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Catalog))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(OptionalUpdateRegistration))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Chain))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ContainerRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Update))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// A URL for more information about the bundle to display in Programs and Features (also /// known as Add/Remove Programs). /// public string AboutUrl { get { return this.aboutUrlField; } set { this.aboutUrlFieldSet = true; this.aboutUrlField = value; } } /// /// The legal copyright found in the version resources of final bundle executable. If /// this attribute is not provided the copyright will be set to "Copyright (c) [Bundle/@Manufacturer]. All rights reserved.". /// public string Copyright { get { return this.copyrightField; } set { this.copyrightFieldSet = true; this.copyrightField = value; } } /// /// Whether Packages and Payloads not assigned to a container should be added to the default attached container or if they should be external. The default is yes. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// Determines whether the bundle can be modified via the Programs and Features (also known as /// Add/Remove Programs). If the value is "button" then Programs and Features will show a single /// "Uninstall/Change" button. If the value is "yes" then Programs and Features will only show /// the "Uninstall" button". If the value is "no", the default, then a "Change" button is shown. /// See the DisableRemove attribute for information how to not display the bundle in Programs /// and Features. /// public YesNoButtonType DisableModify { get { return this.disableModifyField; } set { this.disableModifyFieldSet = true; this.disableModifyField = value; } } /// /// Determines whether the bundle can be removed via the Programs and Features (also /// known as Add/Remove Programs). If the value is "yes" then the "Uninstall" button will /// not be displayed. The default is "no" which ensures there is an "Uninstall" button to /// remove the bundle. If the "DisableModify" attribute is also "yes" or "button" then the /// bundle will not be displayed in Progams and Features and another mechanism (such as /// registering as a related bundle addon) must be used to ensure the bundle can be removed. /// public YesNoType DisableRemove { get { return this.disableRemoveField; } set { this.disableRemoveFieldSet = true; this.disableRemoveField = value; } } public YesNoType DisableRepair { get { return this.disableRepairField; } set { this.disableRepairFieldSet = true; this.disableRepairField = value; } } /// /// A telephone number for help to display in Programs and Features (also known as /// Add/Remove Programs). /// public string HelpTelephone { get { return this.helpTelephoneField; } set { this.helpTelephoneFieldSet = true; this.helpTelephoneField = value; } } /// /// A URL to the help for the bundle to display in Programs and Features (also known as /// Add/Remove Programs). /// public string HelpUrl { get { return this.helpUrlField; } set { this.helpUrlFieldSet = true; this.helpUrlField = value; } } /// /// Path to an icon that will replace the default icon in the final Bundle executable. /// This icon will also be displayed in Programs and Features (also known as Add/Remove /// Programs). /// public string IconSourceFile { get { return this.iconSourceFileField; } set { this.iconSourceFileFieldSet = true; this.iconSourceFileField = value; } } /// /// The publisher of the bundle to display in Programs and Features (also known as /// Add/Remove Programs). /// public string Manufacturer { get { return this.manufacturerField; } set { this.manufacturerFieldSet = true; this.manufacturerField = value; } } /// /// The name of the bundle to display in Programs and Features (also known as Add/Remove /// Programs). This name can be accessed and overwritten by a BootstrapperApplication /// using the WixBundleName bundle variable. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The name of the parent bundle to display in Installed Updates (also known as Add/Remove /// Programs). This name is used to nest or group bundles that will appear as updates. /// If the parent name does not actually exist, a virtual parent is created automatically. /// public string ParentName { get { return this.parentNameField; } set { this.parentNameFieldSet = true; this.parentNameField = value; } } /// /// Path to a bitmap that will be shown as the bootstrapper application is being loaded. If this attribute is not specified, no splash screen will be displayed. /// public string SplashScreenSourceFile { get { return this.splashScreenSourceFileField; } set { this.splashScreenSourceFileFieldSet = true; this.splashScreenSourceFileField = value; } } /// /// Set this string to uniquely identify this bundle to its own BA, and to related bundles. The value of this string only matters to the BA, and its value has no direct effect on engine functionality. /// public string Tag { get { return this.tagField; } set { this.tagFieldSet = true; this.tagField = value; } } /// /// A URL for updates of the bundle to display in Programs and Features (also /// known as Add/Remove Programs). /// public string UpdateUrl { get { return this.updateUrlField; } set { this.updateUrlFieldSet = true; this.updateUrlField = value; } } /// /// Unique identifier for a family of bundles. If two bundles have the same UpgradeCode the /// bundle with the highest version will be installed. /// public string UpgradeCode { get { return this.upgradeCodeField; } set { this.upgradeCodeFieldSet = true; this.upgradeCodeField = value; } } /// /// The version of the bundle. Newer versions upgrade earlier versions of the bundles /// with matching UpgradeCodes. If the bundle is registered in Programs and Features /// then this attribute will be displayed in the Programs and Features user interface. /// public string Version { get { return this.versionField; } set { this.versionFieldSet = true; this.versionField = value; } } /// /// The condition of the bundle. If the condition is not met, the bundle will /// refuse to run. Conditions are checked before the bootstrapper application is loaded /// (before detect), and thus can only reference built-in variables such as /// variables which indicate the version of the OS. /// public string Condition { get { return this.conditionField; } set { this.conditionFieldSet = true; this.conditionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ApprovedExeForElevation" == childName)) { childValue = new ApprovedExeForElevation(); } if (("Log" == childName)) { childValue = new Log(); } if (("Catalog" == childName)) { childValue = new Catalog(); } if (("BootstrapperApplication" == childName)) { childValue = new BootstrapperApplication(); } if (("BootstrapperApplicationRef" == childName)) { childValue = new BootstrapperApplicationRef(); } if (("OptionalUpdateRegistration" == childName)) { childValue = new OptionalUpdateRegistration(); } if (("Chain" == childName)) { childValue = new Chain(); } if (("Container" == childName)) { childValue = new Container(); } if (("ContainerRef" == childName)) { childValue = new ContainerRef(); } if (("PayloadGroup" == childName)) { childValue = new PayloadGroup(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if (("RelatedBundle" == childName)) { childValue = new RelatedBundle(); } if (("Update" == childName)) { childValue = new Update(); } if (("Variable" == childName)) { childValue = new Variable(); } if (("WixVariable" == childName)) { childValue = new WixVariable(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Bundle", "http://wixtoolset.org/schemas/v4/wxs"); if (this.aboutUrlFieldSet) { writer.WriteAttributeString("AboutUrl", this.aboutUrlField); } if (this.copyrightFieldSet) { writer.WriteAttributeString("Copyright", this.copyrightField); } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.disableModifyFieldSet) { if ((this.disableModifyField == YesNoButtonType.no)) { writer.WriteAttributeString("DisableModify", "no"); } if ((this.disableModifyField == YesNoButtonType.yes)) { writer.WriteAttributeString("DisableModify", "yes"); } if ((this.disableModifyField == YesNoButtonType.button)) { writer.WriteAttributeString("DisableModify", "button"); } } if (this.disableRemoveFieldSet) { if ((this.disableRemoveField == YesNoType.no)) { writer.WriteAttributeString("DisableRemove", "no"); } if ((this.disableRemoveField == YesNoType.yes)) { writer.WriteAttributeString("DisableRemove", "yes"); } } if (this.disableRepairFieldSet) { if ((this.disableRepairField == YesNoType.no)) { writer.WriteAttributeString("DisableRepair", "no"); } if ((this.disableRepairField == YesNoType.yes)) { writer.WriteAttributeString("DisableRepair", "yes"); } } if (this.helpTelephoneFieldSet) { writer.WriteAttributeString("HelpTelephone", this.helpTelephoneField); } if (this.helpUrlFieldSet) { writer.WriteAttributeString("HelpUrl", this.helpUrlField); } if (this.iconSourceFileFieldSet) { writer.WriteAttributeString("IconSourceFile", this.iconSourceFileField); } if (this.manufacturerFieldSet) { writer.WriteAttributeString("Manufacturer", this.manufacturerField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.parentNameFieldSet) { writer.WriteAttributeString("ParentName", this.parentNameField); } if (this.splashScreenSourceFileFieldSet) { writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); } if (this.tagFieldSet) { writer.WriteAttributeString("Tag", this.tagField); } if (this.updateUrlFieldSet) { writer.WriteAttributeString("UpdateUrl", this.updateUrlField); } if (this.upgradeCodeFieldSet) { writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); } if (this.versionFieldSet) { writer.WriteAttributeString("Version", this.versionField); } if (this.conditionFieldSet) { writer.WriteAttributeString("Condition", this.conditionField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("AboutUrl" == name)) { this.aboutUrlField = value; this.aboutUrlFieldSet = true; } if (("Copyright" == name)) { this.copyrightField = value; this.copyrightFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("DisableModify" == name)) { this.disableModifyField = Enums.ParseYesNoButtonType(value); this.disableModifyFieldSet = true; } if (("DisableRemove" == name)) { this.disableRemoveField = Enums.ParseYesNoType(value); this.disableRemoveFieldSet = true; } if (("DisableRepair" == name)) { this.disableRepairField = Enums.ParseYesNoType(value); this.disableRepairFieldSet = true; } if (("HelpTelephone" == name)) { this.helpTelephoneField = value; this.helpTelephoneFieldSet = true; } if (("HelpUrl" == name)) { this.helpUrlField = value; this.helpUrlFieldSet = true; } if (("IconSourceFile" == name)) { this.iconSourceFileField = value; this.iconSourceFileFieldSet = true; } if (("Manufacturer" == name)) { this.manufacturerField = value; this.manufacturerFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("ParentName" == name)) { this.parentNameField = value; this.parentNameFieldSet = true; } if (("SplashScreenSourceFile" == name)) { this.splashScreenSourceFileField = value; this.splashScreenSourceFileFieldSet = true; } if (("Tag" == name)) { this.tagField = value; this.tagFieldSet = true; } if (("UpdateUrl" == name)) { this.updateUrlField = value; this.updateUrlFieldSet = true; } if (("UpgradeCode" == name)) { this.upgradeCodeField = value; this.upgradeCodeFieldSet = true; } if (("Version" == name)) { this.versionField = value; this.versionFieldSet = true; } if (("Condition" == name)) { this.conditionField = value; this.conditionFieldSet = true; } } } /// /// Provides information about an .exe so that the BA can request the engine to run it elevated from any secure location. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ApprovedExeForElevation : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string keyField; private bool keyFieldSet; private string valueField; private bool valueFieldSet; private YesNoType win64Field; private bool win64FieldSet; private ISchemaElement parentElement; /// /// The identifier of the ApprovedExeForElevation element. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The key path. /// For security purposes, the root key will be HKLM and Variables are not supported. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// The value name. /// For security purposes, Variables are not supported. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// Instructs the search to look in the 64-bit registry when the value is 'yes'. /// When the value is 'no', the search looks in the 32-bit registry. /// The default value is 'no'. /// public YesNoType Win64 { get { return this.win64Field; } set { this.win64FieldSet = true; this.win64Field = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ApprovedExeForElevation", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.win64FieldSet) { if ((this.win64Field == YesNoType.no)) { writer.WriteAttributeString("Win64", "no"); } if ((this.win64Field == YesNoType.yes)) { writer.WriteAttributeString("Win64", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Win64" == name)) { this.win64Field = Enums.ParseYesNoType(value); this.win64FieldSet = true; } } } /// /// Overrides the default log settings for a bundle. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Log : ISchemaElement, ISetAttributes { private YesNoType disableField; private bool disableFieldSet; private string pathVariableField; private bool pathVariableFieldSet; private string prefixField; private bool prefixFieldSet; private string extensionField; private bool extensionFieldSet; private ISchemaElement parentElement; /// /// Disables the default logging in the Bundle. The end user can still generate a /// log file by specifying the "-l" command-line argument when installing the /// Bundle. /// public YesNoType Disable { get { return this.disableField; } set { this.disableFieldSet = true; this.disableField = value; } } /// /// Name of a Variable that will hold the path to the log file. An empty value /// will cause the variable to not be set. The default is "WixBundleLog". /// public string PathVariable { get { return this.pathVariableField; } set { this.pathVariableFieldSet = true; this.pathVariableField = value; } } /// /// File name and optionally a relative path to use as the prefix for the log file. The /// default is to use the Bundle/@Name or, if Bundle/@Name is not specified, the value /// "Setup". /// public string Prefix { get { return this.prefixField; } set { this.prefixFieldSet = true; this.prefixField = value; } } /// /// The extension to use for the log. The default is ".log". /// public string Extension { get { return this.extensionField; } set { this.extensionFieldSet = true; this.extensionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Log", "http://wixtoolset.org/schemas/v4/wxs"); if (this.disableFieldSet) { if ((this.disableField == YesNoType.no)) { writer.WriteAttributeString("Disable", "no"); } if ((this.disableField == YesNoType.yes)) { writer.WriteAttributeString("Disable", "yes"); } } if (this.pathVariableFieldSet) { writer.WriteAttributeString("PathVariable", this.pathVariableField); } if (this.prefixFieldSet) { writer.WriteAttributeString("Prefix", this.prefixField); } if (this.extensionFieldSet) { writer.WriteAttributeString("Extension", this.extensionField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Disable" == name)) { this.disableField = Enums.ParseYesNoType(value); this.disableFieldSet = true; } if (("PathVariable" == name)) { this.pathVariableField = value; this.pathVariableFieldSet = true; } if (("Prefix" == name)) { this.prefixField = value; this.prefixFieldSet = true; } if (("Extension" == name)) { this.extensionField = value; this.extensionFieldSet = true; } } } /// /// Specify one or more catalog files that will be used to verify the contents of the bundle. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Catalog : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private ISchemaElement parentElement; /// /// The identifier of the catalog element. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The catalog file /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Catalog", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } } } /// /// Contains all the relevant information about the setup UI. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class BootstrapperApplication : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private ISchemaElement parentElement; public BootstrapperApplication() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The identifier of the BootstrapperApplication element. Only required if you want to reference this element using a BootstrapperApplicationRef element. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The DLL with the bootstrapper application entry function. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// The relative destination path and file name for the bootstrapper application DLL. The default is the source file name. Use this attribute to rename the bootstrapper application DLL or extract it into a subfolder. The use of '..' directories is not allowed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("BootstrapperApplication", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } } } /// /// Used to reference a BootstrapperApplication element and optionally add additional payloads to the bootstrapper application. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class BootstrapperApplicationRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public BootstrapperApplicationRef() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The identifier of the BootstrapperApplication element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("BootstrapperApplicationRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// This element has been deprecated. Use the BootstrapperApplication element instead. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UX : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private string splashScreenSourceFileField; private bool splashScreenSourceFileFieldSet; private ISchemaElement parentElement; public UX() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// See the BootstrapperApplication instead. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// See the BootstrapperApplication instead. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// See the BootstrapperApplication instead. /// public string SplashScreenSourceFile { get { return this.splashScreenSourceFileField; } set { this.splashScreenSourceFileFieldSet = true; this.splashScreenSourceFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UX", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.splashScreenSourceFileFieldSet) { writer.WriteAttributeString("SplashScreenSourceFile", this.splashScreenSourceFileField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("SplashScreenSourceFile" == name)) { this.splashScreenSourceFileField = value; this.splashScreenSourceFileFieldSet = true; } } } /// /// Writes additional information to the Windows registry that can be used to detect the bundle. /// This registration is intended primarily for update to an existing product. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class OptionalUpdateRegistration : ISchemaElement, ISetAttributes { private string manufacturerField; private bool manufacturerFieldSet; private string departmentField; private bool departmentFieldSet; private string productFamilyField; private bool productFamilyFieldSet; private string nameField; private bool nameFieldSet; private string classificationField; private bool classificationFieldSet; private ISchemaElement parentElement; /// /// The name of the manufacturer. The default is the Bundle/@Manufacturer attribute, /// but may also be a short form, ex: Acme instead of Acme Corporation. /// An error is generated at build time if neither attribute is specified. /// public string Manufacturer { get { return this.manufacturerField; } set { this.manufacturerFieldSet = true; this.manufacturerField = value; } } /// /// The name of the department or division publishing the update bundle. /// The PublishingGroup registry value is not written if this attribute is not specified. /// public string Department { get { return this.departmentField; } set { this.departmentFieldSet = true; this.departmentField = value; } } /// /// The name of the family of products being updated. The default is the Bundle/@ParentName attribute. /// The corresponding registry key is not created if neither attribute is specified. /// public string ProductFamily { get { return this.productFamilyField; } set { this.productFamilyFieldSet = true; this.productFamilyField = value; } } /// /// The name of the bundle. The default is the Bundle/@Name attribute, /// but may also be a short form, ex: KB12345 instead of Update to Product (KB12345). /// An error is generated at build time if neither attribute is specified. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The release type of the update bundle, such as Update, Security Update, Service Pack, etc. /// The default value is Update. /// public string Classification { get { return this.classificationField; } set { this.classificationFieldSet = true; this.classificationField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("OptionalUpdateRegistration", "http://wixtoolset.org/schemas/v4/wxs"); if (this.manufacturerFieldSet) { writer.WriteAttributeString("Manufacturer", this.manufacturerField); } if (this.departmentFieldSet) { writer.WriteAttributeString("Department", this.departmentField); } if (this.productFamilyFieldSet) { writer.WriteAttributeString("ProductFamily", this.productFamilyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.classificationFieldSet) { writer.WriteAttributeString("Classification", this.classificationField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Manufacturer" == name)) { this.manufacturerField = value; this.manufacturerFieldSet = true; } if (("Department" == name)) { this.departmentField = value; this.departmentFieldSet = true; } if (("ProductFamily" == name)) { this.productFamilyField = value; this.productFamilyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Classification" == name)) { this.classificationField = value; this.classificationFieldSet = true; } } } /// /// Contains the chain of packages to install. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Chain : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private YesNoType disableRollbackField; private bool disableRollbackFieldSet; private YesNoType disableSystemRestoreField; private bool disableSystemRestoreFieldSet; private YesNoType parallelCacheField; private bool parallelCacheFieldSet; private ISchemaElement parentElement; public Chain() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Specifies whether the bundle will attempt to rollback packages /// executed in the chain. If "yes" is specified then when a vital /// package fails to install only that package will rollback and the /// chain will stop with the error. The default is "no" which /// indicates all packages executed during the chain will be /// rolledback to their previous state when a vital package fails. /// public YesNoType DisableRollback { get { return this.disableRollbackField; } set { this.disableRollbackFieldSet = true; this.disableRollbackField = value; } } /// /// Specifies whether the bundle will attempt to create a system /// restore point when executing the chain. If "yes" is specified then /// a system restore point will not be created. The default is "no" which /// indicates a system restore point will be created when the bundle is /// installed, uninstalled, repaired, modified, etc. If the system restore /// point cannot be created, the bundle will log the issue and continue. /// public YesNoType DisableSystemRestore { get { return this.disableSystemRestoreField; } set { this.disableSystemRestoreFieldSet = true; this.disableSystemRestoreField = value; } } /// /// Specifies whether the bundle will start installing packages /// while other packages are still being cached. If "yes", /// packages will start executing when a rollback boundary is /// encountered. The default is "no" which dictates all packages /// must be cached before any packages will start to be installed. /// public YesNoType ParallelCache { get { return this.parallelCacheField; } set { this.parallelCacheFieldSet = true; this.parallelCacheField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("MsiPackage" == childName)) { childValue = new MsiPackage(); } if (("MspPackage" == childName)) { childValue = new MspPackage(); } if (("MsuPackage" == childName)) { childValue = new MsuPackage(); } if (("ExePackage" == childName)) { childValue = new ExePackage(); } if (("RollbackBoundary" == childName)) { childValue = new RollbackBoundary(); } if (("PackageGroupRef" == childName)) { childValue = new PackageGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Chain", "http://wixtoolset.org/schemas/v4/wxs"); if (this.disableRollbackFieldSet) { if ((this.disableRollbackField == YesNoType.no)) { writer.WriteAttributeString("DisableRollback", "no"); } if ((this.disableRollbackField == YesNoType.yes)) { writer.WriteAttributeString("DisableRollback", "yes"); } } if (this.disableSystemRestoreFieldSet) { if ((this.disableSystemRestoreField == YesNoType.no)) { writer.WriteAttributeString("DisableSystemRestore", "no"); } if ((this.disableSystemRestoreField == YesNoType.yes)) { writer.WriteAttributeString("DisableSystemRestore", "yes"); } } if (this.parallelCacheFieldSet) { if ((this.parallelCacheField == YesNoType.no)) { writer.WriteAttributeString("ParallelCache", "no"); } if ((this.parallelCacheField == YesNoType.yes)) { writer.WriteAttributeString("ParallelCache", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("DisableRollback" == name)) { this.disableRollbackField = Enums.ParseYesNoType(value); this.disableRollbackFieldSet = true; } if (("DisableSystemRestore" == name)) { this.disableSystemRestoreField = Enums.ParseYesNoType(value); this.disableSystemRestoreFieldSet = true; } if (("ParallelCache" == name)) { this.parallelCacheField = Enums.ParseYesNoType(value); this.parallelCacheFieldSet = true; } } } /// /// Describes a single msi package to install. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MsiPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private string downloadUrlField; private bool downloadUrlFieldSet; private string idField; private bool idFieldSet; private string afterField; private bool afterFieldSet; private string installSizeField; private bool installSizeFieldSet; private string installConditionField; private bool installConditionFieldSet; private BundleCacheType cacheField; private bool cacheFieldSet; private string cacheIdField; private bool cacheIdFieldSet; private string displayNameField; private bool displayNameFieldSet; private string descriptionField; private bool descriptionFieldSet; private string logPathVariableField; private bool logPathVariableFieldSet; private string rollbackLogPathVariableField; private bool rollbackLogPathVariableFieldSet; private YesNoType permanentField; private bool permanentFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private YesNoType enableSignatureVerificationField; private bool enableSignatureVerificationFieldSet; private YesNoType enableFeatureSelectionField; private bool enableFeatureSelectionFieldSet; private YesNoType forcePerMachineField; private bool forcePerMachineFieldSet; private YesNoType suppressLooseFilePayloadGenerationField; private bool suppressLooseFilePayloadGenerationFieldSet; private YesNoType visibleField; private bool visibleFieldSet; private ISchemaElement parentElement; public MsiPackage() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SlipstreamMsp))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. /// At a minimum, the SourceFile or Name attribute must be specified. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// The destination path and file name for this chain payload. Use this attribute to rename the /// chain entry point or extract it into a subfolder. The default value is the file name from the /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. /// The use of '..' directories is not allowed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } public string DownloadUrl { get { return this.downloadUrlField; } set { this.downloadUrlFieldSet = true; this.downloadUrlField = value; } } /// /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The identifier of another package that this one should be installed after. By default the After /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this /// attribute is specified ensure that a cycle is not created explicitly or implicitly. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// The size this package will take on disk in bytes after it is installed. By default, the binder will /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) /// and use the total for the install size of the package. /// public string InstallSize { get { return this.installSizeField; } set { this.installSizeFieldSet = true; this.installSizeField = value; } } /// /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. /// public string InstallCondition { get { return this.installConditionField; } set { this.installConditionFieldSet = true; this.installConditionField = value; } } /// /// Whether to cache the package. The default is "yes". /// public BundleCacheType Cache { get { return this.cacheField; } set { this.cacheFieldSet = true; this.cacheField = value; } } /// /// The identifier to use when caching the package. /// public string CacheId { get { return this.cacheIdField; } set { this.cacheIdFieldSet = true; this.cacheIdField = value; } } /// /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the /// bootstrapper application data manifest. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use /// the Description patch metadata property. Other package types must use this attribute to define a description in the /// bootstrapper application data manifest. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. /// public string LogPathVariable { get { return this.logPathVariableField; } set { this.logPathVariableFieldSet = true; this.logPathVariableField = value; } } /// /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which /// default to no logging. /// public string RollbackLogPathVariable { get { return this.rollbackLogPathVariableField; } set { this.rollbackLogPathVariableFieldSet = true; this.rollbackLogPathVariableField = value; } } /// /// Specifies whether the package can be uninstalled. The default is "no". /// public YesNoType Permanent { get { return this.permanentField; } set { this.permanentFieldSet = true; this.permanentField = value; } } /// /// Specifies whether the package must succeed for the chain to continue. The default "yes" /// indicates that if the package fails then the chain will fail and rollback or stop. If /// "no" is specified then the chain will continue even if the package reports failure. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// Whether the package payload should be embedded in a container or left as an external payload. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". /// public YesNoType EnableSignatureVerification { get { return this.enableSignatureVerificationField; } set { this.enableSignatureVerificationFieldSet = true; this.enableSignatureVerificationField = value; } } /// /// Specifies whether the bundle will allow individual control over the installation state of Features inside /// the msi package. Managing feature selection requires special care to ensure the install, modify, update and /// uninstall behavior of the package is always correct. The default is "no". /// public YesNoType EnableFeatureSelection { get { return this.enableFeatureSelectionField; } set { this.enableFeatureSelectionFieldSet = true; this.enableFeatureSelectionField = value; } } /// /// Override the automatic per-machine detection of MSI packages and force the package to be per-machine. /// The default is "no", which allows the tools to detect the expected value. /// public YesNoType ForcePerMachine { get { return this.forcePerMachineField; } set { this.forcePerMachineFieldSet = true; this.forcePerMachineField = value; } } /// /// This attribute has been deprecated. When the value is "yes", the Binder will not read the MSI package /// to detect uncompressed files that would otherwise be automatically included in the Bundle as Payloads. /// The resulting Bundle may not be able to install the MSI package correctly. The default is "no". /// public YesNoType SuppressLooseFilePayloadGeneration { get { return this.suppressLooseFilePayloadGenerationField; } set { this.suppressLooseFilePayloadGenerationFieldSet = true; this.suppressLooseFilePayloadGenerationField = value; } } /// /// Specifies whether the MSI will be displayed in Programs and Features (also known as Add/Remove Programs). If "yes" is /// specified the MSI package information will be displayed in Programs and Features. The default "no" indicates the MSI /// will not be displayed. /// public YesNoType Visible { get { return this.visibleField; } set { this.visibleFieldSet = true; this.visibleField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("MsiProperty" == childName)) { childValue = new MsiProperty(); } if (("SlipstreamMsp" == childName)) { childValue = new SlipstreamMsp(); } if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MsiPackage", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.downloadUrlFieldSet) { writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.installSizeFieldSet) { writer.WriteAttributeString("InstallSize", this.installSizeField); } if (this.installConditionFieldSet) { writer.WriteAttributeString("InstallCondition", this.installConditionField); } if (this.cacheFieldSet) { if ((this.cacheField == BundleCacheType.force)) { writer.WriteAttributeString("Cache", "force"); } if ((this.cacheField == BundleCacheType.remove)) { writer.WriteAttributeString("Cache", "remove"); } if ((this.cacheField == BundleCacheType.keep)) { writer.WriteAttributeString("Cache", "keep"); } } if (this.cacheIdFieldSet) { writer.WriteAttributeString("CacheId", this.cacheIdField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.logPathVariableFieldSet) { writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); } if (this.rollbackLogPathVariableFieldSet) { writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); } if (this.permanentFieldSet) { if ((this.permanentField == YesNoType.no)) { writer.WriteAttributeString("Permanent", "no"); } if ((this.permanentField == YesNoType.yes)) { writer.WriteAttributeString("Permanent", "yes"); } } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.enableSignatureVerificationFieldSet) { if ((this.enableSignatureVerificationField == YesNoType.no)) { writer.WriteAttributeString("EnableSignatureVerification", "no"); } if ((this.enableSignatureVerificationField == YesNoType.yes)) { writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } if (this.enableFeatureSelectionFieldSet) { if ((this.enableFeatureSelectionField == YesNoType.no)) { writer.WriteAttributeString("EnableFeatureSelection", "no"); } if ((this.enableFeatureSelectionField == YesNoType.yes)) { writer.WriteAttributeString("EnableFeatureSelection", "yes"); } } if (this.forcePerMachineFieldSet) { if ((this.forcePerMachineField == YesNoType.no)) { writer.WriteAttributeString("ForcePerMachine", "no"); } if ((this.forcePerMachineField == YesNoType.yes)) { writer.WriteAttributeString("ForcePerMachine", "yes"); } } if (this.suppressLooseFilePayloadGenerationFieldSet) { if ((this.suppressLooseFilePayloadGenerationField == YesNoType.no)) { writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "no"); } if ((this.suppressLooseFilePayloadGenerationField == YesNoType.yes)) { writer.WriteAttributeString("SuppressLooseFilePayloadGeneration", "yes"); } } if (this.visibleFieldSet) { if ((this.visibleField == YesNoType.no)) { writer.WriteAttributeString("Visible", "no"); } if ((this.visibleField == YesNoType.yes)) { writer.WriteAttributeString("Visible", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DownloadUrl" == name)) { this.downloadUrlField = value; this.downloadUrlFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("InstallSize" == name)) { this.installSizeField = value; this.installSizeFieldSet = true; } if (("InstallCondition" == name)) { this.installConditionField = value; this.installConditionFieldSet = true; } if (("Cache" == name)) { this.cacheField = Enums.ParseBundleCacheType(value); this.cacheFieldSet = true; } if (("CacheId" == name)) { this.cacheIdField = value; this.cacheIdFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("LogPathVariable" == name)) { this.logPathVariableField = value; this.logPathVariableFieldSet = true; } if (("RollbackLogPathVariable" == name)) { this.rollbackLogPathVariableField = value; this.rollbackLogPathVariableFieldSet = true; } if (("Permanent" == name)) { this.permanentField = Enums.ParseYesNoType(value); this.permanentFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("EnableSignatureVerification" == name)) { this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } if (("EnableFeatureSelection" == name)) { this.enableFeatureSelectionField = Enums.ParseYesNoType(value); this.enableFeatureSelectionFieldSet = true; } if (("ForcePerMachine" == name)) { this.forcePerMachineField = Enums.ParseYesNoType(value); this.forcePerMachineFieldSet = true; } if (("SuppressLooseFilePayloadGeneration" == name)) { this.suppressLooseFilePayloadGenerationField = Enums.ParseYesNoType(value); this.suppressLooseFilePayloadGenerationFieldSet = true; } if (("Visible" == name)) { this.visibleField = Enums.ParseYesNoType(value); this.visibleFieldSet = true; } } } /// /// Describes a single msp package to install. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MspPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private string downloadUrlField; private bool downloadUrlFieldSet; private string idField; private bool idFieldSet; private string afterField; private bool afterFieldSet; private string installSizeField; private bool installSizeFieldSet; private string installConditionField; private bool installConditionFieldSet; private BundleCacheType cacheField; private bool cacheFieldSet; private string cacheIdField; private bool cacheIdFieldSet; private string displayNameField; private bool displayNameFieldSet; private string descriptionField; private bool descriptionFieldSet; private string logPathVariableField; private bool logPathVariableFieldSet; private string rollbackLogPathVariableField; private bool rollbackLogPathVariableFieldSet; private YesNoType permanentField; private bool permanentFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private YesNoType enableSignatureVerificationField; private bool enableSignatureVerificationFieldSet; private YesNoDefaultType perMachineField; private bool perMachineFieldSet; private YesNoType slipstreamField; private bool slipstreamFieldSet; private ISchemaElement parentElement; public MspPackage() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiProperty))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. /// At a minimum, the SourceFile or Name attribute must be specified. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// The destination path and file name for this chain payload. Use this attribute to rename the /// chain entry point or extract it into a subfolder. The default value is the file name from the /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. /// The use of '..' directories is not allowed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } public string DownloadUrl { get { return this.downloadUrlField; } set { this.downloadUrlFieldSet = true; this.downloadUrlField = value; } } /// /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The identifier of another package that this one should be installed after. By default the After /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this /// attribute is specified ensure that a cycle is not created explicitly or implicitly. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// The size this package will take on disk in bytes after it is installed. By default, the binder will /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) /// and use the total for the install size of the package. /// public string InstallSize { get { return this.installSizeField; } set { this.installSizeFieldSet = true; this.installSizeField = value; } } /// /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. /// public string InstallCondition { get { return this.installConditionField; } set { this.installConditionFieldSet = true; this.installConditionField = value; } } /// /// Whether to cache the package. The default is "keep". /// public BundleCacheType Cache { get { return this.cacheField; } set { this.cacheFieldSet = true; this.cacheField = value; } } /// /// The identifier to use when caching the package. /// public string CacheId { get { return this.cacheIdField; } set { this.cacheIdFieldSet = true; this.cacheIdField = value; } } /// /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the /// bootstrapper application data manifest. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use /// the Description patch metadata property. Other package types must use this attribute to define a description in the /// bootstrapper application data manifest. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. /// public string LogPathVariable { get { return this.logPathVariableField; } set { this.logPathVariableFieldSet = true; this.logPathVariableField = value; } } /// /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which /// default to no logging. /// public string RollbackLogPathVariable { get { return this.rollbackLogPathVariableField; } set { this.rollbackLogPathVariableFieldSet = true; this.rollbackLogPathVariableField = value; } } /// /// Specifies whether the package can be uninstalled. The default is "no". /// public YesNoType Permanent { get { return this.permanentField; } set { this.permanentFieldSet = true; this.permanentField = value; } } /// /// Specifies whether the package must succeed for the chain to continue. The default "yes" /// indicates that if the package fails then the chain will fail and rollback or stop. If /// "no" is specified then the chain will continue even if the package reports failure. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// Whether the package payload should be embedded in a container or left as an external payload. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". /// public YesNoType EnableSignatureVerification { get { return this.enableSignatureVerificationField; } set { this.enableSignatureVerificationFieldSet = true; this.enableSignatureVerificationField = value; } } /// /// Indicates the package must be executed elevated. The default is "no". /// public YesNoDefaultType PerMachine { get { return this.perMachineField; } set { this.perMachineFieldSet = true; this.perMachineField = value; } } /// /// Specifies whether to automatically slipstream the patch for any target msi packages in the chain. The default is "no". /// Even when the value is "no", you can still author the SlipstreamMsp element under MsiPackage elements as desired. /// public YesNoType Slipstream { get { return this.slipstreamField; } set { this.slipstreamFieldSet = true; this.slipstreamField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("MsiProperty" == childName)) { childValue = new MsiProperty(); } if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MspPackage", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.downloadUrlFieldSet) { writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.installSizeFieldSet) { writer.WriteAttributeString("InstallSize", this.installSizeField); } if (this.installConditionFieldSet) { writer.WriteAttributeString("InstallCondition", this.installConditionField); } if (this.cacheFieldSet) { if ((this.cacheField == BundleCacheType.force)) { writer.WriteAttributeString("Cache", "force"); } if ((this.cacheField == BundleCacheType.remove)) { writer.WriteAttributeString("Cache", "remove"); } if ((this.cacheField == BundleCacheType.keep)) { writer.WriteAttributeString("Cache", "keep"); } } if (this.cacheIdFieldSet) { writer.WriteAttributeString("CacheId", this.cacheIdField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.logPathVariableFieldSet) { writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); } if (this.rollbackLogPathVariableFieldSet) { writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); } if (this.permanentFieldSet) { if ((this.permanentField == YesNoType.no)) { writer.WriteAttributeString("Permanent", "no"); } if ((this.permanentField == YesNoType.yes)) { writer.WriteAttributeString("Permanent", "yes"); } } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.enableSignatureVerificationFieldSet) { if ((this.enableSignatureVerificationField == YesNoType.no)) { writer.WriteAttributeString("EnableSignatureVerification", "no"); } if ((this.enableSignatureVerificationField == YesNoType.yes)) { writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } if (this.perMachineFieldSet) { if ((this.perMachineField == YesNoDefaultType.@default)) { writer.WriteAttributeString("PerMachine", "default"); } if ((this.perMachineField == YesNoDefaultType.no)) { writer.WriteAttributeString("PerMachine", "no"); } if ((this.perMachineField == YesNoDefaultType.yes)) { writer.WriteAttributeString("PerMachine", "yes"); } } if (this.slipstreamFieldSet) { if ((this.slipstreamField == YesNoType.no)) { writer.WriteAttributeString("Slipstream", "no"); } if ((this.slipstreamField == YesNoType.yes)) { writer.WriteAttributeString("Slipstream", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DownloadUrl" == name)) { this.downloadUrlField = value; this.downloadUrlFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("InstallSize" == name)) { this.installSizeField = value; this.installSizeFieldSet = true; } if (("InstallCondition" == name)) { this.installConditionField = value; this.installConditionFieldSet = true; } if (("Cache" == name)) { this.cacheField = Enums.ParseBundleCacheType(value); this.cacheFieldSet = true; } if (("CacheId" == name)) { this.cacheIdField = value; this.cacheIdFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("LogPathVariable" == name)) { this.logPathVariableField = value; this.logPathVariableFieldSet = true; } if (("RollbackLogPathVariable" == name)) { this.rollbackLogPathVariableField = value; this.rollbackLogPathVariableFieldSet = true; } if (("Permanent" == name)) { this.permanentField = Enums.ParseYesNoType(value); this.permanentFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("EnableSignatureVerification" == name)) { this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } if (("PerMachine" == name)) { this.perMachineField = Enums.ParseYesNoDefaultType(value); this.perMachineFieldSet = true; } if (("Slipstream" == name)) { this.slipstreamField = Enums.ParseYesNoType(value); this.slipstreamFieldSet = true; } } } /// /// Describes a single msu package to install. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MsuPackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private string downloadUrlField; private bool downloadUrlFieldSet; private string idField; private bool idFieldSet; private string afterField; private bool afterFieldSet; private string installSizeField; private bool installSizeFieldSet; private string installConditionField; private bool installConditionFieldSet; private BundleCacheType cacheField; private bool cacheFieldSet; private string cacheIdField; private bool cacheIdFieldSet; private string displayNameField; private bool displayNameFieldSet; private string descriptionField; private bool descriptionFieldSet; private string logPathVariableField; private bool logPathVariableFieldSet; private string rollbackLogPathVariableField; private bool rollbackLogPathVariableFieldSet; private YesNoType permanentField; private bool permanentFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private YesNoType enableSignatureVerificationField; private bool enableSignatureVerificationFieldSet; private string detectConditionField; private bool detectConditionFieldSet; private string kBField; private bool kBFieldSet; private ISchemaElement parentElement; public MsuPackage() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackagePayload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. /// At a minimum, the SourceFile or Name attribute must be specified. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// The destination path and file name for this chain payload. Use this attribute to rename the /// chain entry point or extract it into a subfolder. The default value is the file name from the /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. /// The use of '..' directories is not allowed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } public string DownloadUrl { get { return this.downloadUrlField; } set { this.downloadUrlFieldSet = true; this.downloadUrlField = value; } } /// /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The identifier of another package that this one should be installed after. By default the After /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this /// attribute is specified ensure that a cycle is not created explicitly or implicitly. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// The size this package will take on disk in bytes after it is installed. By default, the binder will /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) /// and use the total for the install size of the package. /// public string InstallSize { get { return this.installSizeField; } set { this.installSizeFieldSet = true; this.installSizeField = value; } } /// /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. /// public string InstallCondition { get { return this.installConditionField; } set { this.installConditionFieldSet = true; this.installConditionField = value; } } /// /// Whether to cache the package. The default is "yes". /// public BundleCacheType Cache { get { return this.cacheField; } set { this.cacheFieldSet = true; this.cacheField = value; } } /// /// The identifier to use when caching the package. /// public string CacheId { get { return this.cacheIdField; } set { this.cacheIdFieldSet = true; this.cacheIdField = value; } } /// /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the /// bootstrapper application data manifest. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use /// the Description patch metadata property. Other package types must use this attribute to define a description in the /// bootstrapper application data manifest. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. /// public string LogPathVariable { get { return this.logPathVariableField; } set { this.logPathVariableFieldSet = true; this.logPathVariableField = value; } } /// /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which /// default to no logging. /// public string RollbackLogPathVariable { get { return this.rollbackLogPathVariableField; } set { this.rollbackLogPathVariableFieldSet = true; this.rollbackLogPathVariableField = value; } } /// /// Specifies whether the package can be uninstalled. The default is "no". /// public YesNoType Permanent { get { return this.permanentField; } set { this.permanentFieldSet = true; this.permanentField = value; } } /// /// Specifies whether the package must succeed for the chain to continue. The default "yes" /// indicates that if the package fails then the chain will fail and rollback or stop. If /// "no" is specified then the chain will continue even if the package reports failure. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// Whether the package payload should be embedded in a container or left as an external payload. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". /// public YesNoType EnableSignatureVerification { get { return this.enableSignatureVerificationField; } set { this.enableSignatureVerificationFieldSet = true; this.enableSignatureVerificationField = value; } } /// /// A condition that determines if the package is present on the target system. This condition can use built-in /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a /// method to detect the presence of an MsuPackage. Burn uses this condition to determine how to treat this /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being /// installed, Burn will install this package. /// public string DetectCondition { get { return this.detectConditionField; } set { this.detectConditionFieldSet = true; this.detectConditionField = value; } } /// /// The knowledge base identifier for the MSU. The KB attribute must be specified to enable the MSU package to /// be uninstalled. Even then MSU uninstallation is only supported on Windows 7 and later. When the KB attribute /// is specified, the Permanent attribute will the control whether the package is uninstalled. /// public string KB { get { return this.kBField; } set { this.kBFieldSet = true; this.kBField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if (("MsuPackagePayload" == childName)) { childValue = new MsuPackagePayload(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MsuPackage", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.downloadUrlFieldSet) { writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.installSizeFieldSet) { writer.WriteAttributeString("InstallSize", this.installSizeField); } if (this.installConditionFieldSet) { writer.WriteAttributeString("InstallCondition", this.installConditionField); } if (this.cacheFieldSet) { if ((this.cacheField == BundleCacheType.force)) { writer.WriteAttributeString("Cache", "force"); } if ((this.cacheField == BundleCacheType.remove)) { writer.WriteAttributeString("Cache", "remove"); } if ((this.cacheField == BundleCacheType.keep)) { writer.WriteAttributeString("Cache", "keep"); } } if (this.cacheIdFieldSet) { writer.WriteAttributeString("CacheId", this.cacheIdField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.logPathVariableFieldSet) { writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); } if (this.rollbackLogPathVariableFieldSet) { writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); } if (this.permanentFieldSet) { if ((this.permanentField == YesNoType.no)) { writer.WriteAttributeString("Permanent", "no"); } if ((this.permanentField == YesNoType.yes)) { writer.WriteAttributeString("Permanent", "yes"); } } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.enableSignatureVerificationFieldSet) { if ((this.enableSignatureVerificationField == YesNoType.no)) { writer.WriteAttributeString("EnableSignatureVerification", "no"); } if ((this.enableSignatureVerificationField == YesNoType.yes)) { writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } if (this.detectConditionFieldSet) { writer.WriteAttributeString("DetectCondition", this.detectConditionField); } if (this.kBFieldSet) { writer.WriteAttributeString("KB", this.kBField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DownloadUrl" == name)) { this.downloadUrlField = value; this.downloadUrlFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("InstallSize" == name)) { this.installSizeField = value; this.installSizeFieldSet = true; } if (("InstallCondition" == name)) { this.installConditionField = value; this.installConditionFieldSet = true; } if (("Cache" == name)) { this.cacheField = Enums.ParseBundleCacheType(value); this.cacheFieldSet = true; } if (("CacheId" == name)) { this.cacheIdField = value; this.cacheIdFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("LogPathVariable" == name)) { this.logPathVariableField = value; this.logPathVariableFieldSet = true; } if (("RollbackLogPathVariable" == name)) { this.rollbackLogPathVariableField = value; this.rollbackLogPathVariableFieldSet = true; } if (("Permanent" == name)) { this.permanentField = Enums.ParseYesNoType(value); this.permanentFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("EnableSignatureVerification" == name)) { this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } if (("DetectCondition" == name)) { this.detectConditionField = value; this.detectConditionFieldSet = true; } if (("KB" == name)) { this.kBField = value; this.kBFieldSet = true; } } } /// /// Describes a single exe package to install. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ExePackage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private string downloadUrlField; private bool downloadUrlFieldSet; private string idField; private bool idFieldSet; private string afterField; private bool afterFieldSet; private string installSizeField; private bool installSizeFieldSet; private string installConditionField; private bool installConditionFieldSet; private BundleCacheType cacheField; private bool cacheFieldSet; private string cacheIdField; private bool cacheIdFieldSet; private string displayNameField; private bool displayNameFieldSet; private string descriptionField; private bool descriptionFieldSet; private string logPathVariableField; private bool logPathVariableFieldSet; private string rollbackLogPathVariableField; private bool rollbackLogPathVariableFieldSet; private YesNoType permanentField; private bool permanentFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private YesNoType enableSignatureVerificationField; private bool enableSignatureVerificationFieldSet; private string detectConditionField; private bool detectConditionFieldSet; private string installCommandField; private bool installCommandFieldSet; private string repairCommandField; private bool repairCommandFieldSet; private string uninstallCommandField; private bool uninstallCommandFieldSet; private YesNoDefaultType perMachineField; private bool perMachineFieldSet; private BurnExeProtocolType protocolField; private bool protocolFieldSet; private ISchemaElement parentElement; public ExePackage() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackagePayload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExitCode))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CommandLine))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Location of the package to add to the bundle. The default value is the Name attribute, if provided. /// At a minimum, the SourceFile or Name attribute must be specified. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// The destination path and file name for this chain payload. Use this attribute to rename the /// chain entry point or extract it into a subfolder. The default value is the file name from the /// SourceFile attribute, if provided. At a minimum, the Name or SourceFile attribute must be specified. /// The use of '..' directories is not allowed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } public string DownloadUrl { get { return this.downloadUrlField; } set { this.downloadUrlFieldSet = true; this.downloadUrlField = value; } } /// /// Identifier for this package, for ordering and cross-referencing. The default is the Name attribute /// modified to be suitable as an identifier (i.e. invalid characters are replaced with underscores). /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The identifier of another package that this one should be installed after. By default the After /// attribute is set to the previous sibling package in the Chain or PackageGroup element. If this /// attribute is specified ensure that a cycle is not created explicitly or implicitly. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// The size this package will take on disk in bytes after it is installed. By default, the binder will /// calculate the install size by scanning the package (File table for MSIs, Payloads for EXEs) /// and use the total for the install size of the package. /// public string InstallSize { get { return this.installSizeField; } set { this.installSizeFieldSet = true; this.installSizeField = value; } } /// /// A condition to evaluate before installing the package. The package will only be installed if the condition evaluates to true. If the condition evaluates to false and the bundle is being installed, repaired, or modified, the package will be uninstalled. /// public string InstallCondition { get { return this.installConditionField; } set { this.installConditionFieldSet = true; this.installConditionField = value; } } /// /// Whether to cache the package. The default is "yes". /// public BundleCacheType Cache { get { return this.cacheField; } set { this.cacheFieldSet = true; this.cacheField = value; } } /// /// The identifier to use when caching the package. /// public string CacheId { get { return this.cacheIdField; } set { this.cacheIdFieldSet = true; this.cacheIdField = value; } } /// /// Specifies the display name to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the ProductName field from the version information, MsiPackages use the ProductName property, and MspPackages use /// the DisplayName patch metadata property. Other package types must use this attribute to define a display name in the /// bootstrapper application data manifest. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Specifies the description to place in the bootstrapper application data manifest for the package. By default, ExePackages /// use the FileName field from the version information, MsiPackages use the ARPCOMMENTS property, and MspPackages use /// the Description patch metadata property. Other package types must use this attribute to define a description in the /// bootstrapper application data manifest. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Name of a Variable that will hold the path to the log file. An empty value will cause the variable to not /// be set. The default is "WixBundleLog_[PackageId]" except for MSU packages which default to no logging. /// public string LogPathVariable { get { return this.logPathVariableField; } set { this.logPathVariableFieldSet = true; this.logPathVariableField = value; } } /// /// Name of a Variable that will hold the path to the log file used during rollback. An empty value will cause /// the variable to not be set. The default is "WixBundleRollbackLog_[PackageId]" except for MSU packages which /// default to no logging. /// public string RollbackLogPathVariable { get { return this.rollbackLogPathVariableField; } set { this.rollbackLogPathVariableFieldSet = true; this.rollbackLogPathVariableField = value; } } /// /// Specifies whether the package can be uninstalled. The default is "no". /// public YesNoType Permanent { get { return this.permanentField; } set { this.permanentFieldSet = true; this.permanentField = value; } } /// /// Specifies whether the package must succeed for the chain to continue. The default "yes" /// indicates that if the package fails then the chain will fail and rollback or stop. If /// "no" is specified then the chain will continue even if the package reports failure. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// Whether the package payload should be embedded in a container or left as an external payload. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". /// public YesNoType EnableSignatureVerification { get { return this.enableSignatureVerificationField; } set { this.enableSignatureVerificationFieldSet = true; this.enableSignatureVerificationField = value; } } /// /// A condition that determines if the package is present on the target system. This condition can use built-in /// variables and variables returned by searches. This condition is necessary because Windows doesn't provide a /// method to detect the presence of an ExePackage. Burn uses this condition to determine how to treat this /// package during a bundle action; for example, if this condition is false or omitted and the bundle is being /// installed, Burn will install this package. /// public string DetectCondition { get { return this.detectConditionField; } set { this.detectConditionFieldSet = true; this.detectConditionField = value; } } /// /// The command-line arguments provided to the ExePackage during install. If this attribute is absent the executable will be launched with no command-line arguments. /// public string InstallCommand { get { return this.installCommandField; } set { this.installCommandFieldSet = true; this.installCommandField = value; } } /// /// The command-line arguments to specify to indicate a repair. If the executable package can be repaired but /// does not require any special command-line arguments to do so then set the attribute's value to blank. To /// indicate that the package does not support repair, omit this attribute. /// public string RepairCommand { get { return this.repairCommandField; } set { this.repairCommandFieldSet = true; this.repairCommandField = value; } } /// /// The command-line arguments provided to the ExePackage during uninstall. If this attribute is absent the executable will be launched with no command-line arguments. To prevent an ExePackage from being uninstalled set the Permanent attribute to "yes". /// public string UninstallCommand { get { return this.uninstallCommandField; } set { this.uninstallCommandFieldSet = true; this.uninstallCommandField = value; } } /// /// Indicates the package must be executed elevated. The default is "no". /// public YesNoDefaultType PerMachine { get { return this.perMachineField; } set { this.perMachineFieldSet = true; this.perMachineField = value; } } /// /// Indicates the communication protocol the package supports for extended progress and error reporting. The default is "none". /// public BurnExeProtocolType Protocol { get { return this.protocolField; } set { this.protocolFieldSet = true; this.protocolField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if (("ExePackagePayload" == childName)) { childValue = new ExePackagePayload(); } if (("ExitCode" == childName)) { childValue = new ExitCode(); } if (("CommandLine" == childName)) { childValue = new CommandLine(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ExePackage", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.downloadUrlFieldSet) { writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.installSizeFieldSet) { writer.WriteAttributeString("InstallSize", this.installSizeField); } if (this.installConditionFieldSet) { writer.WriteAttributeString("InstallCondition", this.installConditionField); } if (this.cacheFieldSet) { if ((this.cacheField == BundleCacheType.force)) { writer.WriteAttributeString("Cache", "force"); } if ((this.cacheField == BundleCacheType.remove)) { writer.WriteAttributeString("Cache", "remove"); } if ((this.cacheField == BundleCacheType.keep)) { writer.WriteAttributeString("Cache", "keep"); } } if (this.cacheIdFieldSet) { writer.WriteAttributeString("CacheId", this.cacheIdField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.logPathVariableFieldSet) { writer.WriteAttributeString("LogPathVariable", this.logPathVariableField); } if (this.rollbackLogPathVariableFieldSet) { writer.WriteAttributeString("RollbackLogPathVariable", this.rollbackLogPathVariableField); } if (this.permanentFieldSet) { if ((this.permanentField == YesNoType.no)) { writer.WriteAttributeString("Permanent", "no"); } if ((this.permanentField == YesNoType.yes)) { writer.WriteAttributeString("Permanent", "yes"); } } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.enableSignatureVerificationFieldSet) { if ((this.enableSignatureVerificationField == YesNoType.no)) { writer.WriteAttributeString("EnableSignatureVerification", "no"); } if ((this.enableSignatureVerificationField == YesNoType.yes)) { writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } if (this.detectConditionFieldSet) { writer.WriteAttributeString("DetectCondition", this.detectConditionField); } if (this.installCommandFieldSet) { writer.WriteAttributeString("InstallCommand", this.installCommandField); } if (this.repairCommandFieldSet) { writer.WriteAttributeString("RepairCommand", this.repairCommandField); } if (this.uninstallCommandFieldSet) { writer.WriteAttributeString("UninstallCommand", this.uninstallCommandField); } if (this.perMachineFieldSet) { if ((this.perMachineField == YesNoDefaultType.@default)) { writer.WriteAttributeString("PerMachine", "default"); } if ((this.perMachineField == YesNoDefaultType.no)) { writer.WriteAttributeString("PerMachine", "no"); } if ((this.perMachineField == YesNoDefaultType.yes)) { writer.WriteAttributeString("PerMachine", "yes"); } } if (this.protocolFieldSet) { if ((this.protocolField == BurnExeProtocolType.none)) { writer.WriteAttributeString("Protocol", "none"); } if ((this.protocolField == BurnExeProtocolType.burn)) { writer.WriteAttributeString("Protocol", "burn"); } if ((this.protocolField == BurnExeProtocolType.netfx4)) { writer.WriteAttributeString("Protocol", "netfx4"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DownloadUrl" == name)) { this.downloadUrlField = value; this.downloadUrlFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("InstallSize" == name)) { this.installSizeField = value; this.installSizeFieldSet = true; } if (("InstallCondition" == name)) { this.installConditionField = value; this.installConditionFieldSet = true; } if (("Cache" == name)) { this.cacheField = Enums.ParseBundleCacheType(value); this.cacheFieldSet = true; } if (("CacheId" == name)) { this.cacheIdField = value; this.cacheIdFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("LogPathVariable" == name)) { this.logPathVariableField = value; this.logPathVariableFieldSet = true; } if (("RollbackLogPathVariable" == name)) { this.rollbackLogPathVariableField = value; this.rollbackLogPathVariableFieldSet = true; } if (("Permanent" == name)) { this.permanentField = Enums.ParseYesNoType(value); this.permanentFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("EnableSignatureVerification" == name)) { this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } if (("DetectCondition" == name)) { this.detectConditionField = value; this.detectConditionFieldSet = true; } if (("InstallCommand" == name)) { this.installCommandField = value; this.installCommandFieldSet = true; } if (("RepairCommand" == name)) { this.repairCommandField = value; this.repairCommandFieldSet = true; } if (("UninstallCommand" == name)) { this.uninstallCommandField = value; this.uninstallCommandFieldSet = true; } if (("PerMachine" == name)) { this.perMachineField = Enums.ParseYesNoDefaultType(value); this.perMachineFieldSet = true; } if (("Protocol" == name)) { this.protocolField = Enums.ParseBurnExeProtocolType(value); this.protocolFieldSet = true; } } } /// /// Describes a rollback boundary in the chain. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RollbackBoundary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private YesNoType transactionField; private bool transactionFieldSet; private ISchemaElement parentElement; public RollbackBoundary() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for this rollback boundary, for ordering and cross-referencing. If this attribute is /// not provided a stable identifier will be generated. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Specifies whether the rollback boundary aborts the chain. The default "yes" indicates that if /// the rollback boundary is encountered then the chain will fail and rollback or stop. If "no" /// is specified then the chain should continue successfuly at the next rollback boundary. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// Specifies whether the rollback boundary is wrapped in an MSI transaction. The default is "no" /// public YesNoType Transaction { get { return this.transactionField; } set { this.transactionFieldSet = true; this.transactionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RollbackBoundary", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.transactionFieldSet) { if ((this.transactionField == YesNoType.no)) { writer.WriteAttributeString("Transaction", "no"); } if ((this.transactionField == YesNoType.yes)) { writer.WriteAttributeString("Transaction", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("Transaction" == name)) { this.transactionField = Enums.ParseYesNoType(value); this.transactionFieldSet = true; } } } /// /// Describes a package group to a bootstrapper. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PackageGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public PackageGroup() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MspPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsuPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExePackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RollbackBoundary))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for package group. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("MsiPackage" == childName)) { childValue = new MsiPackage(); } if (("MspPackage" == childName)) { childValue = new MspPackage(); } if (("MsuPackage" == childName)) { childValue = new MsuPackage(); } if (("ExePackage" == childName)) { childValue = new ExePackage(); } if (("RollbackBoundary" == childName)) { childValue = new RollbackBoundary(); } if (("PackageGroupRef" == childName)) { childValue = new PackageGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PackageGroup", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Create a reference to PackageGroup element that exists inside a Bundle or Fragment element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PackageGroupRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string afterField; private bool afterFieldSet; private ISchemaElement parentElement; /// /// The identifier of the PackageGroup element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The identifier of a package that this group should be installed after. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PackageGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } } } /// /// Allows an MSI property to be set based on the value of a burn engine expression. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MsiProperty : ISchemaElement, ISetAttributes { private string nameField; private bool nameFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// The name of the MSI property to set. Burn controls the follow MSI properties so they cannot be set with MsiProperty: ACTION, ALLUSERS, REBOOT, REINSTALL, REINSTALLMODE /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The value to set the property to. This string is evaluated by the burn engine and can be as simple as a burn engine variable reference or as complex as a full expression. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MsiProperty", "http://wixtoolset.org/schemas/v4/wxs"); if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Specifies a patch included in the same bundle that is installed when the parent MSI package is installed. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SlipstreamMsp : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier for a MspPackage in the bundle. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SlipstreamMsp", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Describes a burn engine variable to define. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Variable : ISchemaElement, ISetAttributes { private YesNoType hiddenField; private bool hiddenFieldSet; private string nameField; private bool nameFieldSet; private YesNoType persistedField; private bool persistedFieldSet; private string valueField; private bool valueFieldSet; private TypeType typeField; private bool typeFieldSet; private ISchemaElement parentElement; /// /// Whether the value of the variable should be hidden. /// public YesNoType Hidden { get { return this.hiddenField; } set { this.hiddenFieldSet = true; this.hiddenField = value; } } /// /// The name for the variable. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Whether the variable should be persisted. /// public YesNoType Persisted { get { return this.persistedField; } set { this.persistedFieldSet = true; this.persistedField = value; } } /// /// Starting value for the variable. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// Type of the variable, inferred from the value if not specified. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; Variable.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("string" == value)) { parsedValue = TypeType.@string; } else { if (("numeric" == value)) { parsedValue = TypeType.numeric; } else { if (("version" == value)) { parsedValue = TypeType.version; } else { parsedValue = TypeType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Variable", "http://wixtoolset.org/schemas/v4/wxs"); if (this.hiddenFieldSet) { if ((this.hiddenField == YesNoType.no)) { writer.WriteAttributeString("Hidden", "no"); } if ((this.hiddenField == YesNoType.yes)) { writer.WriteAttributeString("Hidden", "yes"); } } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.persistedFieldSet) { if ((this.persistedField == YesNoType.no)) { writer.WriteAttributeString("Persisted", "no"); } if ((this.persistedField == YesNoType.yes)) { writer.WriteAttributeString("Persisted", "yes"); } } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.@string)) { writer.WriteAttributeString("Type", "string"); } if ((this.typeField == TypeType.numeric)) { writer.WriteAttributeString("Type", "numeric"); } if ((this.typeField == TypeType.version)) { writer.WriteAttributeString("Type", "version"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Hidden" == name)) { this.hiddenField = Enums.ParseYesNoType(value); this.hiddenFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Persisted" == name)) { this.persistedField = Enums.ParseYesNoType(value); this.persistedFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Type" == name)) { this.typeField = Variable.ParseTypeType(value); this.typeFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, @string, numeric, version, } } /// /// Representation of a file that contains one or more files. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Container : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string downloadUrlField; private bool downloadUrlFieldSet; private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private BurnContainerType typeField; private bool typeFieldSet; private ISchemaElement parentElement; public Container() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroupRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public string DownloadUrl { get { return this.downloadUrlField; } set { this.downloadUrlFieldSet = true; this.downloadUrlField = value; } } /// /// The unique identifier for the container. If this attribute is not specified the Name attribute will be used. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The file name for this container. A relative path may be provided to place the container in a sub-folder of the bundle. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Indicates whether the container is "attached" to the bundle executable or placed external to the bundle extecutable as "detached". If /// this attribute is not specified, the default is to create a detached container. /// public BurnContainerType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("PackageGroupRef" == childName)) { childValue = new PackageGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Container", "http://wixtoolset.org/schemas/v4/wxs"); if (this.downloadUrlFieldSet) { writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.typeFieldSet) { if ((this.typeField == BurnContainerType.attached)) { writer.WriteAttributeString("Type", "attached"); } if ((this.typeField == BurnContainerType.detached)) { writer.WriteAttributeString("Type", "detached"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("DownloadUrl" == name)) { this.downloadUrlField = value; this.downloadUrlFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Type" == name)) { this.typeField = Enums.ParseBurnContainerType(value); this.typeFieldSet = true; } } } /// /// Create a reference to an existing Container element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ContainerRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of Container element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ContainerRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Describes map of exit code returned from executable package to a bootstrapper behavior. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ExitCode : ISchemaElement, ISetAttributes { private int valueField; private bool valueFieldSet; private BehaviorType behaviorField; private bool behaviorFieldSet; private ISchemaElement parentElement; /// /// Exit code returned from executable package. If no value is provided it means all values not explicitly set default to this behavior. /// public int Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// Choose one of the supported behaviors error codes: success, error, scheduleReboot, forceReboot. /// public BehaviorType Behavior { get { return this.behaviorField; } set { this.behaviorFieldSet = true; this.behaviorField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a BehaviorType from a string. /// public static BehaviorType ParseBehaviorType(string value) { BehaviorType parsedValue; ExitCode.TryParseBehaviorType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a BehaviorType from a string. /// public static bool TryParseBehaviorType(string value, out BehaviorType parsedValue) { parsedValue = BehaviorType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("success" == value)) { parsedValue = BehaviorType.success; } else { if (("error" == value)) { parsedValue = BehaviorType.error; } else { if (("scheduleReboot" == value)) { parsedValue = BehaviorType.scheduleReboot; } else { if (("forceReboot" == value)) { parsedValue = BehaviorType.forceReboot; } else { parsedValue = BehaviorType.IllegalValue; return false; } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ExitCode", "http://wixtoolset.org/schemas/v4/wxs"); if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField.ToString(CultureInfo.InvariantCulture)); } if (this.behaviorFieldSet) { if ((this.behaviorField == BehaviorType.success)) { writer.WriteAttributeString("Behavior", "success"); } if ((this.behaviorField == BehaviorType.error)) { writer.WriteAttributeString("Behavior", "error"); } if ((this.behaviorField == BehaviorType.scheduleReboot)) { writer.WriteAttributeString("Behavior", "scheduleReboot"); } if ((this.behaviorField == BehaviorType.forceReboot)) { writer.WriteAttributeString("Behavior", "forceReboot"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Value" == name)) { this.valueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.valueFieldSet = true; } if (("Behavior" == name)) { this.behaviorField = ExitCode.ParseBehaviorType(value); this.behaviorFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum BehaviorType { IllegalValue = int.MaxValue, NotSet = -1, success, error, scheduleReboot, forceReboot, } } /// /// Describes additional, conditional command-line arguments for an ExePackage. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CommandLine : ISchemaElement, ISetAttributes { private string installArgumentField; private bool installArgumentFieldSet; private string uninstallArgumentField; private bool uninstallArgumentFieldSet; private string repairArgumentField; private bool repairArgumentFieldSet; private string conditionField; private bool conditionFieldSet; private ISchemaElement parentElement; /// /// Additional command-line arguments to apply during package installation if Condition is true. /// public string InstallArgument { get { return this.installArgumentField; } set { this.installArgumentFieldSet = true; this.installArgumentField = value; } } /// /// Additional command-line arguments to apply during package uninstallation if Condition is true. /// public string UninstallArgument { get { return this.uninstallArgumentField; } set { this.uninstallArgumentFieldSet = true; this.uninstallArgumentField = value; } } /// /// Additional command-line arguments to apply during package repair if Condition is true. /// public string RepairArgument { get { return this.repairArgumentField; } set { this.repairArgumentFieldSet = true; this.repairArgumentField = value; } } /// /// The condition that controls whether the command-line arguments specified in the /// InstallArgument, UninstallArgument, or RepairArgument attributes are appended to the /// command line passed to the ExePackage. Which attribute is used depends on the /// action being applied to the ExePackage. For example, when the ExePackage is /// being installed, the InstallArgument attribute value is appended to the command /// line when the ExePackage is executed. /// public string Condition { get { return this.conditionField; } set { this.conditionFieldSet = true; this.conditionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CommandLine", "http://wixtoolset.org/schemas/v4/wxs"); if (this.installArgumentFieldSet) { writer.WriteAttributeString("InstallArgument", this.installArgumentField); } if (this.uninstallArgumentFieldSet) { writer.WriteAttributeString("UninstallArgument", this.uninstallArgumentField); } if (this.repairArgumentFieldSet) { writer.WriteAttributeString("RepairArgument", this.repairArgumentField); } if (this.conditionFieldSet) { writer.WriteAttributeString("Condition", this.conditionField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("InstallArgument" == name)) { this.installArgumentField = value; this.installArgumentFieldSet = true; } if (("UninstallArgument" == name)) { this.uninstallArgumentField = value; this.uninstallArgumentFieldSet = true; } if (("RepairArgument" == name)) { this.repairArgumentField = value; this.repairArgumentFieldSet = true; } if (("Condition" == name)) { this.conditionField = value; this.conditionFieldSet = true; } } } /// /// Describes a payload to a bootstrapper. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Payload : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string nameField; private bool nameFieldSet; private string downloadUrlField; private bool downloadUrlFieldSet; private YesNoType enableSignatureVerificationField; private bool enableSignatureVerificationFieldSet; private ISchemaElement parentElement; /// /// The identifier of Payload element. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Whether the payload should be embedded in a container or left as an external payload. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// Location of the source file. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// The destination path and file name for this payload. The default is the source file name. The use of '..' directories is not allowed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } public string DownloadUrl { get { return this.downloadUrlField; } set { this.downloadUrlFieldSet = true; this.downloadUrlField = value; } } /// /// By default, a Bundle will use the hash of a package to verify its contents. If this attribute is set to "yes" /// and the package is signed with an Authenticode signature the Bundle will verify the contents of the package using the /// signature instead. Beware that there are many real world issues with Windows verifying Authenticode signatures. /// Since the Authenticode signatures are no more secure than hashing the packages directly, the default is "no". /// public YesNoType EnableSignatureVerification { get { return this.enableSignatureVerificationField; } set { this.enableSignatureVerificationFieldSet = true; this.enableSignatureVerificationField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Payload", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.downloadUrlFieldSet) { writer.WriteAttributeString("DownloadUrl", this.downloadUrlField); } if (this.enableSignatureVerificationFieldSet) { if ((this.enableSignatureVerificationField == YesNoType.no)) { writer.WriteAttributeString("EnableSignatureVerification", "no"); } if ((this.enableSignatureVerificationField == YesNoType.yes)) { writer.WriteAttributeString("EnableSignatureVerification", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DownloadUrl" == name)) { this.downloadUrlField = value; this.downloadUrlFieldSet = true; } if (("EnableSignatureVerification" == name)) { this.enableSignatureVerificationField = Enums.ParseYesNoType(value); this.enableSignatureVerificationFieldSet = true; } } } /// /// Describes a payload group to a bootstrapper. PayloadGroups referenced from within a Bundle are tied to the Bundle. /// PayloadGroups referenced from a Fragment are tied to the context of whatever references them such as an ExePackage or MsiPackage. /// It is possible to share a PayloadGroup between multiple Packages and/or a Bundle by creating multiple references to it. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PayloadGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public PayloadGroup() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Payload))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroupRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for payload group. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Payload" == childName)) { childValue = new Payload(); } if (("PayloadGroupRef" == childName)) { childValue = new PayloadGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PayloadGroup", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Create a reference to PayloadGroup element that exists inside a Bundle or Fragment element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PayloadGroupRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of the PayloadGroup element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PayloadGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } public class ExePackagePayload : RemotePayload { public ExePackagePayload() : base("ExePackagePayload") { } } public class MsuPackagePayload : RemotePayload { public MsuPackagePayload() : base("MsuPackagePayload") { } } /// /// Describes information about a remote file payload that is not available at the time of building the bundle. /// The parent must specify DownloadUrl and must not specify SourceFile when using this element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public abstract class RemotePayload : ISchemaElement, ISetAttributes { private string elementName; public RemotePayload(string elementName) { this.elementName = elementName; } private string descriptionField; private bool descriptionFieldSet; private string hashField; private bool hashFieldSet; private string productNameField; private bool productNameFieldSet; private long sizeField; private bool sizeFieldSet; private string versionField; private bool versionFieldSet; private ISchemaElement parentElement; /// /// Description of the file from version resources. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// SHA-1 hash of the RemotePayload. Include this attribute if the remote file is unsigned or SuppressSignatureVerification is set to Yes. /// public string Hash { get { return this.hashField; } set { this.hashFieldSet = true; this.hashField = value; } } /// /// Product name of the file from version resouces. /// public string ProductName { get { return this.productNameField; } set { this.productNameFieldSet = true; this.productNameField = value; } } /// /// Size of the remote file in bytes. /// public long Size { get { return this.sizeField; } set { this.sizeFieldSet = true; this.sizeField = value; } } /// /// Version of the remote file /// public string Version { get { return this.versionField; } set { this.versionFieldSet = true; this.versionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement(this.elementName, "http://wixtoolset.org/schemas/v4/wxs"); if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.hashFieldSet) { writer.WriteAttributeString("Hash", this.hashField); } if (this.productNameFieldSet) { writer.WriteAttributeString("ProductName", this.productNameField); } if (this.sizeFieldSet) { writer.WriteAttributeString("Size", this.sizeField.ToString(CultureInfo.InvariantCulture)); } if (this.versionFieldSet) { writer.WriteAttributeString("Version", this.versionField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("Hash" == name)) { this.hashField = value; this.hashFieldSet = true; } if (("ProductName" == name)) { this.productNameField = value; this.productNameFieldSet = true; } if (("Size" == name)) { this.sizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sizeFieldSet = true; } if (("Version" == name)) { this.versionField = value; this.versionFieldSet = true; } } } /// /// Create a RelatedBundle element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RelatedBundle : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ActionType actionField; private bool actionFieldSet; private ISchemaElement parentElement; /// /// The identifier of the RelatedBundle group. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The action to take on bundles related to this one. Detect is the default. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; RelatedBundle.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("Detect" == value)) { parsedValue = ActionType.Detect; } else { if (("Upgrade" == value)) { parsedValue = ActionType.Upgrade; } else { if (("Addon" == value)) { parsedValue = ActionType.Addon; } else { if (("Patch" == value)) { parsedValue = ActionType.Patch; } else { parsedValue = ActionType.IllegalValue; return false; } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RelatedBundle", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.actionFieldSet) { if ((this.actionField == ActionType.Detect)) { writer.WriteAttributeString("Action", "Detect"); } if ((this.actionField == ActionType.Upgrade)) { writer.WriteAttributeString("Action", "Upgrade"); } if ((this.actionField == ActionType.Addon)) { writer.WriteAttributeString("Action", "Addon"); } if ((this.actionField == ActionType.Patch)) { writer.WriteAttributeString("Action", "Patch"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Action" == name)) { this.actionField = RelatedBundle.ParseActionType(value); this.actionFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, Detect, Upgrade, Addon, Patch, } } /// /// Defines the update for a Bundle. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Update : ISchemaElement, ISetAttributes { private string locationField; private bool locationFieldSet; private ISchemaElement parentElement; /// /// The absolute path or URL to check for an update bundle. Currently the engine provides this value /// in the IBootstrapperApplication::OnDetectUpdateBegin() and otherwise ignores the value. In the /// future the engine will be able to acquire an update bundle from the location and determine if it /// is newer than the current executing bundle. /// public string Location { get { return this.locationField; } set { this.locationFieldSet = true; this.locationField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Update", "http://wixtoolset.org/schemas/v4/wxs"); if (this.locationFieldSet) { writer.WriteAttributeString("Location", this.locationField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Location" == name)) { this.locationField = value; this.locationFieldSet = true; } } } /// /// The Package element is analogous to the main function in a C program. When linking, only one Package section /// can be given to the linker to produce a successful result. Using this element creates an msi file. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Package : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string codepageField; private bool codepageFieldSet; private string languageField; private bool languageFieldSet; private string manufacturerField; private bool manufacturerFieldSet; private string nameField; private bool nameFieldSet; private string upgradeCodeField; private bool upgradeCodeFieldSet; private string versionField; private bool versionFieldSet; private ISchemaElement parentElement; public Package() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SummaryInformation))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(InstanceTransforms))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MajorUpgrade))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); childCollection1.AddCollection(childCollection2); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The product code GUID for the product. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The code page integer value or web name for the resulting MSI. See remarks for more information. /// public string Codepage { get { return this.codepageField; } set { this.codepageFieldSet = true; this.codepageField = value; } } /// /// The decimal language ID (LCID) for the product. /// public string Language { get { return this.languageField; } set { this.languageFieldSet = true; this.languageField = value; } } /// /// The manufacturer of the product. /// public string Manufacturer { get { return this.manufacturerField; } set { this.manufacturerFieldSet = true; this.manufacturerField = value; } } /// /// The descriptive name of the product. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The upgrade code GUID for the product. /// public string UpgradeCode { get { return this.upgradeCodeField; } set { this.upgradeCodeFieldSet = true; this.upgradeCodeField = value; } } /// /// The product's version string. /// public string Version { get { return this.versionField; } set { this.versionFieldSet = true; this.versionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("SummaryInformation" == childName)) { childValue = new SummaryInformation(); } if (("AppId" == childName)) { childValue = new AppId(); } if (("Binary" == childName)) { childValue = new Binary(); } if (("ComplianceCheck" == childName)) { childValue = new ComplianceCheck(); } if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroup" == childName)) { childValue = new ComponentGroup(); } if (("Condition" == childName)) { childValue = new Condition(); } if (("CustomAction" == childName)) { childValue = new CustomAction(); } if (("CustomActionRef" == childName)) { childValue = new CustomActionRef(); } if (("CustomTable" == childName)) { childValue = new CustomTable(); } if (("Directory" == childName)) { childValue = new Directory(); } if (("DirectoryRef" == childName)) { childValue = new DirectoryRef(); } if (("EmbeddedChainer" == childName)) { childValue = new EmbeddedChainer(); } if (("EmbeddedChainerRef" == childName)) { childValue = new EmbeddedChainerRef(); } if (("EnsureTable" == childName)) { childValue = new EnsureTable(); } if (("Feature" == childName)) { childValue = new Feature(); } if (("FeatureRef" == childName)) { childValue = new FeatureRef(); } if (("FeatureGroupRef" == childName)) { childValue = new FeatureGroupRef(); } if (("Icon" == childName)) { childValue = new Icon(); } if (("InstanceTransforms" == childName)) { childValue = new InstanceTransforms(); } if (("MajorUpgrade" == childName)) { childValue = new MajorUpgrade(); } if (("Media" == childName)) { childValue = new Media(); } if (("MediaTemplate" == childName)) { childValue = new MediaTemplate(); } if (("PackageCertificates" == childName)) { childValue = new PackageCertificates(); } if (("PatchCertificates" == childName)) { childValue = new PatchCertificates(); } if (("Property" == childName)) { childValue = new Property(); } if (("PropertyRef" == childName)) { childValue = new PropertyRef(); } if (("SetDirectory" == childName)) { childValue = new SetDirectory(); } if (("SetProperty" == childName)) { childValue = new SetProperty(); } if (("SFPCatalog" == childName)) { childValue = new SFPCatalog(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("UI" == childName)) { childValue = new UI(); } if (("UIRef" == childName)) { childValue = new UIRef(); } if (("Upgrade" == childName)) { childValue = new Upgrade(); } if (("WixVariable" == childName)) { childValue = new WixVariable(); } if (("InstallExecuteSequence" == childName)) { childValue = new InstallExecuteSequence(); } if (("InstallUISequence" == childName)) { childValue = new InstallUISequence(); } if (("AdminExecuteSequence" == childName)) { childValue = new AdminExecuteSequence(); } if (("AdminUISequence" == childName)) { childValue = new AdminUISequence(); } if (("AdvertiseExecuteSequence" == childName)) { childValue = new AdvertiseExecuteSequence(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Package", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.codepageFieldSet) { writer.WriteAttributeString("Codepage", this.codepageField); } if (this.languageFieldSet) { writer.WriteAttributeString("Language", this.languageField); } if (this.manufacturerFieldSet) { writer.WriteAttributeString("Manufacturer", this.manufacturerField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.upgradeCodeFieldSet) { writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); } if (this.versionFieldSet) { writer.WriteAttributeString("Version", this.versionField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Codepage" == name)) { this.codepageField = value; this.codepageFieldSet = true; } if (("Language" == name)) { this.languageField = value; this.languageFieldSet = true; } if (("Manufacturer" == name)) { this.manufacturerField = value; this.manufacturerFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("UpgradeCode" == name)) { this.upgradeCodeField = value; this.upgradeCodeFieldSet = true; } if (("Version" == name)) { this.versionField = value; this.versionFieldSet = true; } } } /// /// The Module element is analogous to the main function in a C program. When linking, only /// one Module section can be given to the linker to produce a successful result. Using this /// element creates an msm file. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Module : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string codepageField; private bool codepageFieldSet; private string guidField; private bool guidFieldSet; private string languageField; private bool languageFieldSet; private string versionField; private bool versionFieldSet; private ISchemaElement parentElement; public Module() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SummaryInformation))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Configuration))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Dependency))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Exclusion))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreTable))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Substitution))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); ElementCollection childCollection2 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); childCollection2.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); childCollection1.AddCollection(childCollection2); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The name of the merge module (not the file name). /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The code page integer value or web name for the resulting MSM. See remarks for more information. /// public string Codepage { get { return this.codepageField; } set { this.codepageFieldSet = true; this.codepageField = value; } } /// /// The modularizaion Guid. /// public string Guid { get { return this.guidField; } set { this.guidFieldSet = true; this.guidField = value; } } /// /// The decimal language ID (LCID) of the merge module. /// public string Language { get { return this.languageField; } set { this.languageFieldSet = true; this.languageField = value; } } /// /// The major and minor versions of the merge module. /// public string Version { get { return this.versionField; } set { this.versionFieldSet = true; this.versionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("SummaryInformation" == childName)) { childValue = new SummaryInformation(); } if (("AppId" == childName)) { childValue = new AppId(); } if (("Binary" == childName)) { childValue = new Binary(); } if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroupRef" == childName)) { childValue = new ComponentGroupRef(); } if (("ComponentRef" == childName)) { childValue = new ComponentRef(); } if (("Configuration" == childName)) { childValue = new Configuration(); } if (("CustomAction" == childName)) { childValue = new CustomAction(); } if (("CustomActionRef" == childName)) { childValue = new CustomActionRef(); } if (("CustomTable" == childName)) { childValue = new CustomTable(); } if (("Dependency" == childName)) { childValue = new Dependency(); } if (("Directory" == childName)) { childValue = new Directory(); } if (("DirectoryRef" == childName)) { childValue = new DirectoryRef(); } if (("EmbeddedChainer" == childName)) { childValue = new EmbeddedChainer(); } if (("EmbeddedChainerRef" == childName)) { childValue = new EmbeddedChainerRef(); } if (("EnsureTable" == childName)) { childValue = new EnsureTable(); } if (("Exclusion" == childName)) { childValue = new Exclusion(); } if (("Icon" == childName)) { childValue = new Icon(); } if (("IgnoreModularization" == childName)) { childValue = new IgnoreModularization(); } if (("IgnoreTable" == childName)) { childValue = new IgnoreTable(); } if (("Property" == childName)) { childValue = new Property(); } if (("PropertyRef" == childName)) { childValue = new PropertyRef(); } if (("SetDirectory" == childName)) { childValue = new SetDirectory(); } if (("SetProperty" == childName)) { childValue = new SetProperty(); } if (("SFPCatalog" == childName)) { childValue = new SFPCatalog(); } if (("Substitution" == childName)) { childValue = new Substitution(); } if (("UI" == childName)) { childValue = new UI(); } if (("UIRef" == childName)) { childValue = new UIRef(); } if (("WixVariable" == childName)) { childValue = new WixVariable(); } if (("InstallExecuteSequence" == childName)) { childValue = new InstallExecuteSequence(); } if (("InstallUISequence" == childName)) { childValue = new InstallUISequence(); } if (("AdminExecuteSequence" == childName)) { childValue = new AdminExecuteSequence(); } if (("AdminUISequence" == childName)) { childValue = new AdminUISequence(); } if (("AdvertiseExecuteSequence" == childName)) { childValue = new AdvertiseExecuteSequence(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Module", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.codepageFieldSet) { writer.WriteAttributeString("Codepage", this.codepageField); } if (this.guidFieldSet) { writer.WriteAttributeString("Guid", this.guidField); } if (this.languageFieldSet) { writer.WriteAttributeString("Language", this.languageField); } if (this.versionFieldSet) { writer.WriteAttributeString("Version", this.versionField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Codepage" == name)) { this.codepageField = value; this.codepageFieldSet = true; } if (("Guid" == name)) { this.guidField = value; this.guidFieldSet = true; } if (("Language" == name)) { this.languageField = value; this.languageFieldSet = true; } if (("Version" == name)) { this.versionField = value; this.versionFieldSet = true; } } } /// /// Declares a dependency on another merge module. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Dependency : ISchemaElement, ISetAttributes { private string requiredIdField; private bool requiredIdFieldSet; private int requiredLanguageField; private bool requiredLanguageFieldSet; private string requiredVersionField; private bool requiredVersionFieldSet; private ISchemaElement parentElement; /// /// Identifier of the merge module required by the merge module. /// public string RequiredId { get { return this.requiredIdField; } set { this.requiredIdFieldSet = true; this.requiredIdField = value; } } /// /// Numeric language ID of the merge module in RequiredID. /// public int RequiredLanguage { get { return this.requiredLanguageField; } set { this.requiredLanguageFieldSet = true; this.requiredLanguageField = value; } } /// /// Version of the merge module in RequiredID. /// public string RequiredVersion { get { return this.requiredVersionField; } set { this.requiredVersionFieldSet = true; this.requiredVersionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Dependency", "http://wixtoolset.org/schemas/v4/wxs"); if (this.requiredIdFieldSet) { writer.WriteAttributeString("RequiredId", this.requiredIdField); } if (this.requiredLanguageFieldSet) { writer.WriteAttributeString("RequiredLanguage", this.requiredLanguageField.ToString(CultureInfo.InvariantCulture)); } if (this.requiredVersionFieldSet) { writer.WriteAttributeString("RequiredVersion", this.requiredVersionField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("RequiredId" == name)) { this.requiredIdField = value; this.requiredIdFieldSet = true; } if (("RequiredLanguage" == name)) { this.requiredLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.requiredLanguageFieldSet = true; } if (("RequiredVersion" == name)) { this.requiredVersionField = value; this.requiredVersionFieldSet = true; } } } /// /// Declares a merge module with which this merge module is incompatible. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Exclusion : ISchemaElement, ISetAttributes { private string excludedIdField; private bool excludedIdFieldSet; private int excludeExceptLanguageField; private bool excludeExceptLanguageFieldSet; private int excludeLanguageField; private bool excludeLanguageFieldSet; private string excludedMinVersionField; private bool excludedMinVersionFieldSet; private string excludedMaxVersionField; private bool excludedMaxVersionFieldSet; private ISchemaElement parentElement; /// /// Identifier of the merge module that is incompatible. /// public string ExcludedId { get { return this.excludedIdField; } set { this.excludedIdFieldSet = true; this.excludedIdField = value; } } /// /// Numeric language ID of the merge module in ExcludedID. All except this language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. /// public int ExcludeExceptLanguage { get { return this.excludeExceptLanguageField; } set { this.excludeExceptLanguageFieldSet = true; this.excludeExceptLanguageField = value; } } /// /// Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. /// public int ExcludeLanguage { get { return this.excludeLanguageField; } set { this.excludeLanguageFieldSet = true; this.excludeLanguageField = value; } } /// /// Minimum version excluded from a range. If not set, all versions before max are excluded. If neither max nor min, no exclusion based on version. /// public string ExcludedMinVersion { get { return this.excludedMinVersionField; } set { this.excludedMinVersionFieldSet = true; this.excludedMinVersionField = value; } } /// /// Maximum version excluded from a range. If not set, all versions after min are excluded. If neither max nor min, no exclusion based on version. /// public string ExcludedMaxVersion { get { return this.excludedMaxVersionField; } set { this.excludedMaxVersionFieldSet = true; this.excludedMaxVersionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Exclusion", "http://wixtoolset.org/schemas/v4/wxs"); if (this.excludedIdFieldSet) { writer.WriteAttributeString("ExcludedId", this.excludedIdField); } if (this.excludeExceptLanguageFieldSet) { writer.WriteAttributeString("ExcludeExceptLanguage", this.excludeExceptLanguageField.ToString(CultureInfo.InvariantCulture)); } if (this.excludeLanguageFieldSet) { writer.WriteAttributeString("ExcludeLanguage", this.excludeLanguageField.ToString(CultureInfo.InvariantCulture)); } if (this.excludedMinVersionFieldSet) { writer.WriteAttributeString("ExcludedMinVersion", this.excludedMinVersionField); } if (this.excludedMaxVersionFieldSet) { writer.WriteAttributeString("ExcludedMaxVersion", this.excludedMaxVersionField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("ExcludedId" == name)) { this.excludedIdField = value; this.excludedIdFieldSet = true; } if (("ExcludeExceptLanguage" == name)) { this.excludeExceptLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.excludeExceptLanguageFieldSet = true; } if (("ExcludeLanguage" == name)) { this.excludeLanguageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.excludeLanguageFieldSet = true; } if (("ExcludedMinVersion" == name)) { this.excludedMinVersionField = value; this.excludedMinVersionFieldSet = true; } if (("ExcludedMaxVersion" == name)) { this.excludedMaxVersionField = value; this.excludedMaxVersionFieldSet = true; } } } /// /// Defines the configurable attributes of merge module. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Configuration : ISchemaElement, ISetAttributes { private string nameField; private bool nameFieldSet; private FormatType formatField; private bool formatFieldSet; private string typeField; private bool typeFieldSet; private string contextDataField; private bool contextDataFieldSet; private string defaultValueField; private bool defaultValueFieldSet; private YesNoType keyNoOrphanField; private bool keyNoOrphanFieldSet; private YesNoType nonNullableField; private bool nonNullableFieldSet; private string displayNameField; private bool displayNameFieldSet; private string descriptionField; private bool descriptionFieldSet; private string helpLocationField; private bool helpLocationFieldSet; private string helpKeywordField; private bool helpKeywordFieldSet; private ISchemaElement parentElement; /// /// Defines the name of the configurable item. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Specifies the format of the data being changed. /// public FormatType Format { get { return this.formatField; } set { this.formatFieldSet = true; this.formatField = value; } } /// /// Specifies the type of the data being changed. /// public string Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// Specifies a semantic context for the requested data. /// public string ContextData { get { return this.contextDataField; } set { this.contextDataFieldSet = true; this.contextDataField = value; } } /// /// Specifies a default value for the item in this record if the merge tool declines to provide a value. /// public string DefaultValue { get { return this.defaultValueField; } set { this.defaultValueFieldSet = true; this.defaultValueField = value; } } /// /// Does not merge rule according to rules in MSI SDK. /// public YesNoType KeyNoOrphan { get { return this.keyNoOrphanField; } set { this.keyNoOrphanFieldSet = true; this.keyNoOrphanField = value; } } /// /// If yes, null is not a valid entry. /// public YesNoType NonNullable { get { return this.nonNullableField; } set { this.nonNullableFieldSet = true; this.nonNullableField = value; } } /// /// Display name for authoring. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Description for authoring. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Location of chm file for authoring. /// public string HelpLocation { get { return this.helpLocationField; } set { this.helpLocationFieldSet = true; this.helpLocationField = value; } } /// /// Keyword into chm file for authoring. /// public string HelpKeyword { get { return this.helpKeywordField; } set { this.helpKeywordFieldSet = true; this.helpKeywordField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a FormatType from a string. /// public static FormatType ParseFormatType(string value) { FormatType parsedValue; Configuration.TryParseFormatType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a FormatType from a string. /// public static bool TryParseFormatType(string value, out FormatType parsedValue) { parsedValue = FormatType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("Text" == value)) { parsedValue = FormatType.Text; } else { if (("Key" == value)) { parsedValue = FormatType.Key; } else { if (("Integer" == value)) { parsedValue = FormatType.Integer; } else { if (("Bitfield" == value)) { parsedValue = FormatType.Bitfield; } else { parsedValue = FormatType.IllegalValue; return false; } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Configuration", "http://wixtoolset.org/schemas/v4/wxs"); if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.formatFieldSet) { if ((this.formatField == FormatType.Text)) { writer.WriteAttributeString("Format", "Text"); } if ((this.formatField == FormatType.Key)) { writer.WriteAttributeString("Format", "Key"); } if ((this.formatField == FormatType.Integer)) { writer.WriteAttributeString("Format", "Integer"); } if ((this.formatField == FormatType.Bitfield)) { writer.WriteAttributeString("Format", "Bitfield"); } } if (this.typeFieldSet) { writer.WriteAttributeString("Type", this.typeField); } if (this.contextDataFieldSet) { writer.WriteAttributeString("ContextData", this.contextDataField); } if (this.defaultValueFieldSet) { writer.WriteAttributeString("DefaultValue", this.defaultValueField); } if (this.keyNoOrphanFieldSet) { if ((this.keyNoOrphanField == YesNoType.no)) { writer.WriteAttributeString("KeyNoOrphan", "no"); } if ((this.keyNoOrphanField == YesNoType.yes)) { writer.WriteAttributeString("KeyNoOrphan", "yes"); } } if (this.nonNullableFieldSet) { if ((this.nonNullableField == YesNoType.no)) { writer.WriteAttributeString("NonNullable", "no"); } if ((this.nonNullableField == YesNoType.yes)) { writer.WriteAttributeString("NonNullable", "yes"); } } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.helpLocationFieldSet) { writer.WriteAttributeString("HelpLocation", this.helpLocationField); } if (this.helpKeywordFieldSet) { writer.WriteAttributeString("HelpKeyword", this.helpKeywordField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Format" == name)) { this.formatField = Configuration.ParseFormatType(value); this.formatFieldSet = true; } if (("Type" == name)) { this.typeField = value; this.typeFieldSet = true; } if (("ContextData" == name)) { this.contextDataField = value; this.contextDataFieldSet = true; } if (("DefaultValue" == name)) { this.defaultValueField = value; this.defaultValueFieldSet = true; } if (("KeyNoOrphan" == name)) { this.keyNoOrphanField = Enums.ParseYesNoType(value); this.keyNoOrphanFieldSet = true; } if (("NonNullable" == name)) { this.nonNullableField = Enums.ParseYesNoType(value); this.nonNullableFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("HelpLocation" == name)) { this.helpLocationField = value; this.helpLocationFieldSet = true; } if (("HelpKeyword" == name)) { this.helpKeywordField = value; this.helpKeywordFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum FormatType { IllegalValue = int.MaxValue, NotSet = -1, Text, Key, Integer, Bitfield, } } /// /// Specifies the configurable fields of a module database and provides a template for the configuration of each field. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Substitution : ISchemaElement, ISetAttributes { private string tableField; private bool tableFieldSet; private string rowField; private bool rowFieldSet; private string columnField; private bool columnFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Specifies the name of the table being modified in the module database. /// public string Table { get { return this.tableField; } set { this.tableFieldSet = true; this.tableField = value; } } /// /// Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. /// public string Row { get { return this.rowField; } set { this.rowFieldSet = true; this.rowField = value; } } /// /// Specifies the target column in the row named in the Row column. /// public string Column { get { return this.columnField; } set { this.columnFieldSet = true; this.columnField = value; } } /// /// Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Substitution", "http://wixtoolset.org/schemas/v4/wxs"); if (this.tableFieldSet) { writer.WriteAttributeString("Table", this.tableField); } if (this.rowFieldSet) { writer.WriteAttributeString("Row", this.rowField); } if (this.columnFieldSet) { writer.WriteAttributeString("Column", this.columnField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Table" == name)) { this.tableField = value; this.tableFieldSet = true; } if (("Row" == name)) { this.rowField = value; this.rowFieldSet = true; } if (("Column" == name)) { this.columnField = value; this.columnFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Specifies a table from the merge module that is not merged into an .msi file. /// If the table already exists in an .msi file, it is not modified by the merge. /// The specified table can therefore contain data that is unneeded after the merge. /// To minimize the size of the .msm file, it is recommended that developers remove /// unused tables from modules intended for redistribution rather than creating /// IgnoreTable elements for those tables. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IgnoreTable : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The name of the table in the merge module that is not to be merged into the .msi file. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IgnoreTable", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// The Fragment element is the building block of creating an installer database in WiX. Once defined, /// the Fragment becomes an immutable, atomic unit which can either be completely included or excluded /// from a product. The contents of a Fragment element can be linked into a product by utilizing one /// of the many *Ref elements. When linking in a Fragment, it will be necessary to link in all of its /// individual units. For instance, if a given Fragment contains two Component elements, you must link /// both under features using ComponentRef for each linked Component. Otherwise, you will get a linker /// warning and have a floating Component that does not appear under any Feature. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Fragment : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public Fragment() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplication))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BootstrapperApplicationRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComplianceCheck))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Container))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomAction))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CustomTable))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainer))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedChainerRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EnsureTable))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreModularization))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MediaTemplate))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PackageCertificates))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchCertificates))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PayloadGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RelatedBundle))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetDirectory))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetProperty))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UI))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Upgrade))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Variable))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WixVariable))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallExecuteSequence))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminExecuteSequence))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdvertiseExecuteSequence))); childCollection0.AddCollection(childCollection1); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Optional identifier for a Fragment. Should only be set by advanced users to tag sections. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("AppId" == childName)) { childValue = new AppId(); } if (("Binary" == childName)) { childValue = new Binary(); } if (("BootstrapperApplication" == childName)) { childValue = new BootstrapperApplication(); } if (("BootstrapperApplicationRef" == childName)) { childValue = new BootstrapperApplicationRef(); } if (("ComplianceCheck" == childName)) { childValue = new ComplianceCheck(); } if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroup" == childName)) { childValue = new ComponentGroup(); } if (("Condition" == childName)) { childValue = new Condition(); } if (("Container" == childName)) { childValue = new Container(); } if (("CustomAction" == childName)) { childValue = new CustomAction(); } if (("CustomActionRef" == childName)) { childValue = new CustomActionRef(); } if (("CustomTable" == childName)) { childValue = new CustomTable(); } if (("Directory" == childName)) { childValue = new Directory(); } if (("DirectoryRef" == childName)) { childValue = new DirectoryRef(); } if (("EmbeddedChainer" == childName)) { childValue = new EmbeddedChainer(); } if (("EmbeddedChainerRef" == childName)) { childValue = new EmbeddedChainerRef(); } if (("EnsureTable" == childName)) { childValue = new EnsureTable(); } if (("Feature" == childName)) { childValue = new Feature(); } if (("FeatureGroup" == childName)) { childValue = new FeatureGroup(); } if (("FeatureRef" == childName)) { childValue = new FeatureRef(); } if (("Icon" == childName)) { childValue = new Icon(); } if (("IgnoreModularization" == childName)) { childValue = new IgnoreModularization(); } if (("Media" == childName)) { childValue = new Media(); } if (("MediaTemplate" == childName)) { childValue = new MediaTemplate(); } if (("PackageGroup" == childName)) { childValue = new PackageGroup(); } if (("PackageCertificates" == childName)) { childValue = new PackageCertificates(); } if (("PatchCertificates" == childName)) { childValue = new PatchCertificates(); } if (("PatchFamily" == childName)) { childValue = new PatchFamily(); } if (("PatchFamilyGroup" == childName)) { childValue = new PatchFamilyGroup(); } if (("PayloadGroup" == childName)) { childValue = new PayloadGroup(); } if (("Property" == childName)) { childValue = new Property(); } if (("PropertyRef" == childName)) { childValue = new PropertyRef(); } if (("RelatedBundle" == childName)) { childValue = new RelatedBundle(); } if (("SetDirectory" == childName)) { childValue = new SetDirectory(); } if (("SetProperty" == childName)) { childValue = new SetProperty(); } if (("SFPCatalog" == childName)) { childValue = new SFPCatalog(); } if (("UI" == childName)) { childValue = new UI(); } if (("UIRef" == childName)) { childValue = new UIRef(); } if (("Upgrade" == childName)) { childValue = new Upgrade(); } if (("Variable" == childName)) { childValue = new Variable(); } if (("WixVariable" == childName)) { childValue = new WixVariable(); } if (("InstallExecuteSequence" == childName)) { childValue = new InstallExecuteSequence(); } if (("InstallUISequence" == childName)) { childValue = new InstallUISequence(); } if (("AdminExecuteSequence" == childName)) { childValue = new AdminExecuteSequence(); } if (("AdminUISequence" == childName)) { childValue = new AdminUISequence(); } if (("AdvertiseExecuteSequence" == childName)) { childValue = new AdvertiseExecuteSequence(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Fragment", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// The Patch element is analogous to the main function in a C program. When linking, only one Patch section /// can be given to the linker to produce a successful result. Using this element creates an MSP file. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Patch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string codepageField; private bool codepageFieldSet; private YesNoType allowRemovalField; private bool allowRemovalFieldSet; private string classificationField; private bool classificationFieldSet; private string clientPatchIdField; private bool clientPatchIdFieldSet; private YesNoType apiPatchingSymbolNoImagehlpFlagField; private bool apiPatchingSymbolNoImagehlpFlagFieldSet; private YesNoType apiPatchingSymbolNoFailuresFlagField; private bool apiPatchingSymbolNoFailuresFlagFieldSet; private YesNoType apiPatchingSymbolUndecoratedTooFlagField; private bool apiPatchingSymbolUndecoratedTooFlagFieldSet; private string descriptionField; private bool descriptionFieldSet; private string displayNameField; private bool displayNameFieldSet; private string commentsField; private bool commentsFieldSet; private string manufacturerField; private bool manufacturerFieldSet; private YesNoType minorUpdateTargetRTMField; private bool minorUpdateTargetRTMFieldSet; private string moreInfoURLField; private bool moreInfoURLFieldSet; private YesNoType optimizedInstallModeField; private bool optimizedInstallModeFieldSet; private string targetProductNameField; private bool targetProductNameFieldSet; private YesNoType optimizePatchSizeForLargeFilesField; private bool optimizePatchSizeForLargeFilesFieldSet; private ISchemaElement parentElement; public Patch() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchInformation))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Media))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroup))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCodes))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Patch code for this patch. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The code page integer value or web name for the resulting MSP. See remarks for more information. /// public string Codepage { get { return this.codepageField; } set { this.codepageFieldSet = true; this.codepageField = value; } } /// /// Whether this is an uninstallable patch. /// public YesNoType AllowRemoval { get { return this.allowRemovalField; } set { this.allowRemovalFieldSet = true; this.allowRemovalField = value; } } /// /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. /// public string Classification { get { return this.classificationField; } set { this.classificationFieldSet = true; this.classificationField = value; } } /// /// An easily referenced identity unique to a patch that can be used in product authoring. See remarks for more information. /// public string ClientPatchId { get { return this.clientPatchIdField; } set { this.clientPatchIdFieldSet = true; this.clientPatchIdField = value; } } /// /// Flag used when creating a binary file patch. Default is "no". Don't use imagehlp.dll. /// public YesNoType ApiPatchingSymbolNoImagehlpFlag { get { return this.apiPatchingSymbolNoImagehlpFlagField; } set { this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; this.apiPatchingSymbolNoImagehlpFlagField = value; } } /// /// Flag used when creating a binary file patch. Default is "no". Don't fail patch due to imagehlp failures. /// public YesNoType ApiPatchingSymbolNoFailuresFlag { get { return this.apiPatchingSymbolNoFailuresFlagField; } set { this.apiPatchingSymbolNoFailuresFlagFieldSet = true; this.apiPatchingSymbolNoFailuresFlagField = value; } } /// /// Flag used when creating a binary file patch. Default is "no". After matching decorated symbols, try to match remaining by undecorated names. /// public YesNoType ApiPatchingSymbolUndecoratedTooFlag { get { return this.apiPatchingSymbolUndecoratedTooFlagField; } set { this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; this.apiPatchingSymbolUndecoratedTooFlagField = value; } } /// /// Description of the patch. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Optional comments for browsing. /// public string Comments { get { return this.commentsField; } set { this.commentsFieldSet = true; this.commentsField = value; } } /// /// Vendor releasing the package /// public string Manufacturer { get { return this.manufacturerField; } set { this.manufacturerFieldSet = true; this.manufacturerField = value; } } /// /// Indicates that the patch targets the RTM version of the product or the most recent major /// upgrade patch. Author this optional property in minor update patches that contain sequencing /// information to indicate that the patch removes all patches up to the RTM version of the /// product, or up to the most recent major upgrade patch. This property is available beginning /// with Windows Installer 3.1. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public YesNoType MinorUpdateTargetRTM { get { return this.minorUpdateTargetRTMField; } set { this.minorUpdateTargetRTMFieldSet = true; this.minorUpdateTargetRTMField = value; } } /// /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public string MoreInfoURL { get { return this.moreInfoURLField; } set { this.moreInfoURLFieldSet = true; this.moreInfoURLField = value; } } /// /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. /// public YesNoType OptimizedInstallMode { get { return this.optimizedInstallModeField; } set { this.optimizedInstallModeFieldSet = true; this.optimizedInstallModeField = value; } } /// /// Name of the application or target product suite. /// public string TargetProductName { get { return this.targetProductNameField; } set { this.targetProductNameFieldSet = true; this.targetProductNameField = value; } } /// /// When this attribute is set, patches for files greater than approximately 4 MB in size may be made smaller. /// public YesNoType OptimizePatchSizeForLargeFiles { get { return this.optimizePatchSizeForLargeFilesField; } set { this.optimizePatchSizeForLargeFilesFieldSet = true; this.optimizePatchSizeForLargeFilesField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("PatchInformation" == childName)) { childValue = new PatchInformation(); } if (("Media" == childName)) { childValue = new Media(); } if (("OptimizeCustomActions" == childName)) { childValue = new OptimizeCustomActions(); } if (("PatchFamily" == childName)) { childValue = new PatchFamily(); } if (("PatchFamilyRef" == childName)) { childValue = new PatchFamilyRef(); } if (("PatchFamilyGroup" == childName)) { childValue = new PatchFamilyGroup(); } if (("PatchFamilyGroupRef" == childName)) { childValue = new PatchFamilyGroupRef(); } if (("PatchProperty" == childName)) { childValue = new PatchProperty(); } if (("TargetProductCodes" == childName)) { childValue = new TargetProductCodes(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Patch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.codepageFieldSet) { writer.WriteAttributeString("Codepage", this.codepageField); } if (this.allowRemovalFieldSet) { if ((this.allowRemovalField == YesNoType.no)) { writer.WriteAttributeString("AllowRemoval", "no"); } if ((this.allowRemovalField == YesNoType.yes)) { writer.WriteAttributeString("AllowRemoval", "yes"); } } if (this.classificationFieldSet) { writer.WriteAttributeString("Classification", this.classificationField); } if (this.clientPatchIdFieldSet) { writer.WriteAttributeString("ClientPatchId", this.clientPatchIdField); } if (this.apiPatchingSymbolNoImagehlpFlagFieldSet) { if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.no)) { writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "no"); } if ((this.apiPatchingSymbolNoImagehlpFlagField == YesNoType.yes)) { writer.WriteAttributeString("ApiPatchingSymbolNoImagehlpFlag", "yes"); } } if (this.apiPatchingSymbolNoFailuresFlagFieldSet) { if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.no)) { writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "no"); } if ((this.apiPatchingSymbolNoFailuresFlagField == YesNoType.yes)) { writer.WriteAttributeString("ApiPatchingSymbolNoFailuresFlag", "yes"); } } if (this.apiPatchingSymbolUndecoratedTooFlagFieldSet) { if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.no)) { writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "no"); } if ((this.apiPatchingSymbolUndecoratedTooFlagField == YesNoType.yes)) { writer.WriteAttributeString("ApiPatchingSymbolUndecoratedTooFlag", "yes"); } } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.commentsFieldSet) { writer.WriteAttributeString("Comments", this.commentsField); } if (this.manufacturerFieldSet) { writer.WriteAttributeString("Manufacturer", this.manufacturerField); } if (this.minorUpdateTargetRTMFieldSet) { if ((this.minorUpdateTargetRTMField == YesNoType.no)) { writer.WriteAttributeString("MinorUpdateTargetRTM", "no"); } if ((this.minorUpdateTargetRTMField == YesNoType.yes)) { writer.WriteAttributeString("MinorUpdateTargetRTM", "yes"); } } if (this.moreInfoURLFieldSet) { writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); } if (this.optimizedInstallModeFieldSet) { if ((this.optimizedInstallModeField == YesNoType.no)) { writer.WriteAttributeString("OptimizedInstallMode", "no"); } if ((this.optimizedInstallModeField == YesNoType.yes)) { writer.WriteAttributeString("OptimizedInstallMode", "yes"); } } if (this.targetProductNameFieldSet) { writer.WriteAttributeString("TargetProductName", this.targetProductNameField); } if (this.optimizePatchSizeForLargeFilesFieldSet) { if ((this.optimizePatchSizeForLargeFilesField == YesNoType.no)) { writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "no"); } if ((this.optimizePatchSizeForLargeFilesField == YesNoType.yes)) { writer.WriteAttributeString("OptimizePatchSizeForLargeFiles", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Codepage" == name)) { this.codepageField = value; this.codepageFieldSet = true; } if (("AllowRemoval" == name)) { this.allowRemovalField = Enums.ParseYesNoType(value); this.allowRemovalFieldSet = true; } if (("Classification" == name)) { this.classificationField = value; this.classificationFieldSet = true; } if (("ClientPatchId" == name)) { this.clientPatchIdField = value; this.clientPatchIdFieldSet = true; } if (("ApiPatchingSymbolNoImagehlpFlag" == name)) { this.apiPatchingSymbolNoImagehlpFlagField = Enums.ParseYesNoType(value); this.apiPatchingSymbolNoImagehlpFlagFieldSet = true; } if (("ApiPatchingSymbolNoFailuresFlag" == name)) { this.apiPatchingSymbolNoFailuresFlagField = Enums.ParseYesNoType(value); this.apiPatchingSymbolNoFailuresFlagFieldSet = true; } if (("ApiPatchingSymbolUndecoratedTooFlag" == name)) { this.apiPatchingSymbolUndecoratedTooFlagField = Enums.ParseYesNoType(value); this.apiPatchingSymbolUndecoratedTooFlagFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Comments" == name)) { this.commentsField = value; this.commentsFieldSet = true; } if (("Manufacturer" == name)) { this.manufacturerField = value; this.manufacturerFieldSet = true; } if (("MinorUpdateTargetRTM" == name)) { this.minorUpdateTargetRTMField = Enums.ParseYesNoType(value); this.minorUpdateTargetRTMFieldSet = true; } if (("MoreInfoURL" == name)) { this.moreInfoURLField = value; this.moreInfoURLFieldSet = true; } if (("OptimizedInstallMode" == name)) { this.optimizedInstallModeField = Enums.ParseYesNoType(value); this.optimizedInstallModeFieldSet = true; } if (("TargetProductName" == name)) { this.targetProductNameField = value; this.targetProductNameFieldSet = true; } if (("OptimizePatchSizeForLargeFiles" == name)) { this.optimizePatchSizeForLargeFilesField = Enums.ParseYesNoType(value); this.optimizePatchSizeForLargeFilesFieldSet = true; } } } /// /// Sets information in the patch transform that determines if the transform applies to an installed product and what errors should be ignored when applying the patch transform. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Validate : ISchemaElement, ISetAttributes { private YesNoType productIdField; private bool productIdFieldSet; private YesNoType productLanguageField; private bool productLanguageFieldSet; private ProductVersionType productVersionField; private bool productVersionFieldSet; private ProductVersionOperatorType productVersionOperatorField; private bool productVersionOperatorFieldSet; private YesNoType upgradeCodeField; private bool upgradeCodeFieldSet; private YesNoType ignoreAddExistingRowField; private bool ignoreAddExistingRowFieldSet; private YesNoType ignoreAddExistingTableField; private bool ignoreAddExistingTableFieldSet; private YesNoType ignoreDeleteMissingRowField; private bool ignoreDeleteMissingRowFieldSet; private YesNoType ignoreDeleteMissingTableField; private bool ignoreDeleteMissingTableFieldSet; private YesNoType ignoreUpdateMissingRowField; private bool ignoreUpdateMissingRowFieldSet; private YesNoType ignoreChangingCodePageField; private bool ignoreChangingCodePageFieldSet; private ISchemaElement parentElement; /// /// Requires that the installed ProductCode match the target ProductCode used to create the transform. The default is 'yes'. /// public YesNoType ProductId { get { return this.productIdField; } set { this.productIdFieldSet = true; this.productIdField = value; } } /// /// Requires that the installed ProductLanguage match the target ProductLanguage used to create the transform. The default is 'no'. /// public YesNoType ProductLanguage { get { return this.productLanguageField; } set { this.productLanguageFieldSet = true; this.productLanguageField = value; } } /// /// Determines how many fields of the installed ProductVersion to compare. See remarks for more information. The default is 'Update'. /// public ProductVersionType ProductVersion { get { return this.productVersionField; } set { this.productVersionFieldSet = true; this.productVersionField = value; } } /// /// Determines how the installed ProductVersion is compared to the target ProductVersion used to create the transform. See remarks for more information. The default is 'Equal'. /// public ProductVersionOperatorType ProductVersionOperator { get { return this.productVersionOperatorField; } set { this.productVersionOperatorFieldSet = true; this.productVersionOperatorField = value; } } /// /// Requires that the installed UpgradeCode match the target UpgradeCode used to create the transform. The default is 'yes'. /// public YesNoType UpgradeCode { get { return this.upgradeCodeField; } set { this.upgradeCodeFieldSet = true; this.upgradeCodeField = value; } } /// /// Ignore errors when adding existing rows. The default is 'yes'. /// public YesNoType IgnoreAddExistingRow { get { return this.ignoreAddExistingRowField; } set { this.ignoreAddExistingRowFieldSet = true; this.ignoreAddExistingRowField = value; } } /// /// Ignore errors when adding existing tables. The default is 'yes'. /// public YesNoType IgnoreAddExistingTable { get { return this.ignoreAddExistingTableField; } set { this.ignoreAddExistingTableFieldSet = true; this.ignoreAddExistingTableField = value; } } /// /// Ignore errors when deleting missing rows. The default is 'yes'. /// public YesNoType IgnoreDeleteMissingRow { get { return this.ignoreDeleteMissingRowField; } set { this.ignoreDeleteMissingRowFieldSet = true; this.ignoreDeleteMissingRowField = value; } } /// /// Ignore errors when deleting missing tables. The default is 'yes'. /// public YesNoType IgnoreDeleteMissingTable { get { return this.ignoreDeleteMissingTableField; } set { this.ignoreDeleteMissingTableFieldSet = true; this.ignoreDeleteMissingTableField = value; } } /// /// Ignore errors when updating missing rows. The default is 'yes'. /// public YesNoType IgnoreUpdateMissingRow { get { return this.ignoreUpdateMissingRowField; } set { this.ignoreUpdateMissingRowFieldSet = true; this.ignoreUpdateMissingRowField = value; } } /// /// Ignore errors when changing the database code page. The default is 'no'. /// public YesNoType IgnoreChangingCodePage { get { return this.ignoreChangingCodePageField; } set { this.ignoreChangingCodePageFieldSet = true; this.ignoreChangingCodePageField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ProductVersionType from a string. /// public static ProductVersionType ParseProductVersionType(string value) { ProductVersionType parsedValue; Validate.TryParseProductVersionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ProductVersionType from a string. /// public static bool TryParseProductVersionType(string value, out ProductVersionType parsedValue) { parsedValue = ProductVersionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("Major" == value)) { parsedValue = ProductVersionType.Major; } else { if (("Minor" == value)) { parsedValue = ProductVersionType.Minor; } else { if (("Update" == value)) { parsedValue = ProductVersionType.Update; } else { parsedValue = ProductVersionType.IllegalValue; return false; } } } return true; } /// /// Parses a ProductVersionOperatorType from a string. /// public static ProductVersionOperatorType ParseProductVersionOperatorType(string value) { ProductVersionOperatorType parsedValue; Validate.TryParseProductVersionOperatorType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ProductVersionOperatorType from a string. /// public static bool TryParseProductVersionOperatorType(string value, out ProductVersionOperatorType parsedValue) { parsedValue = ProductVersionOperatorType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("Lesser" == value)) { parsedValue = ProductVersionOperatorType.Lesser; } else { if (("LesserOrEqual" == value)) { parsedValue = ProductVersionOperatorType.LesserOrEqual; } else { if (("Equal" == value)) { parsedValue = ProductVersionOperatorType.Equal; } else { if (("GreaterOrEqual" == value)) { parsedValue = ProductVersionOperatorType.GreaterOrEqual; } else { if (("Greater" == value)) { parsedValue = ProductVersionOperatorType.Greater; } else { parsedValue = ProductVersionOperatorType.IllegalValue; return false; } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Validate", "http://wixtoolset.org/schemas/v4/wxs"); if (this.productIdFieldSet) { if ((this.productIdField == YesNoType.no)) { writer.WriteAttributeString("ProductId", "no"); } if ((this.productIdField == YesNoType.yes)) { writer.WriteAttributeString("ProductId", "yes"); } } if (this.productLanguageFieldSet) { if ((this.productLanguageField == YesNoType.no)) { writer.WriteAttributeString("ProductLanguage", "no"); } if ((this.productLanguageField == YesNoType.yes)) { writer.WriteAttributeString("ProductLanguage", "yes"); } } if (this.productVersionFieldSet) { if ((this.productVersionField == ProductVersionType.Major)) { writer.WriteAttributeString("ProductVersion", "Major"); } if ((this.productVersionField == ProductVersionType.Minor)) { writer.WriteAttributeString("ProductVersion", "Minor"); } if ((this.productVersionField == ProductVersionType.Update)) { writer.WriteAttributeString("ProductVersion", "Update"); } } if (this.productVersionOperatorFieldSet) { if ((this.productVersionOperatorField == ProductVersionOperatorType.Lesser)) { writer.WriteAttributeString("ProductVersionOperator", "Lesser"); } if ((this.productVersionOperatorField == ProductVersionOperatorType.LesserOrEqual)) { writer.WriteAttributeString("ProductVersionOperator", "LesserOrEqual"); } if ((this.productVersionOperatorField == ProductVersionOperatorType.Equal)) { writer.WriteAttributeString("ProductVersionOperator", "Equal"); } if ((this.productVersionOperatorField == ProductVersionOperatorType.GreaterOrEqual)) { writer.WriteAttributeString("ProductVersionOperator", "GreaterOrEqual"); } if ((this.productVersionOperatorField == ProductVersionOperatorType.Greater)) { writer.WriteAttributeString("ProductVersionOperator", "Greater"); } } if (this.upgradeCodeFieldSet) { if ((this.upgradeCodeField == YesNoType.no)) { writer.WriteAttributeString("UpgradeCode", "no"); } if ((this.upgradeCodeField == YesNoType.yes)) { writer.WriteAttributeString("UpgradeCode", "yes"); } } if (this.ignoreAddExistingRowFieldSet) { if ((this.ignoreAddExistingRowField == YesNoType.no)) { writer.WriteAttributeString("IgnoreAddExistingRow", "no"); } if ((this.ignoreAddExistingRowField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreAddExistingRow", "yes"); } } if (this.ignoreAddExistingTableFieldSet) { if ((this.ignoreAddExistingTableField == YesNoType.no)) { writer.WriteAttributeString("IgnoreAddExistingTable", "no"); } if ((this.ignoreAddExistingTableField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreAddExistingTable", "yes"); } } if (this.ignoreDeleteMissingRowFieldSet) { if ((this.ignoreDeleteMissingRowField == YesNoType.no)) { writer.WriteAttributeString("IgnoreDeleteMissingRow", "no"); } if ((this.ignoreDeleteMissingRowField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreDeleteMissingRow", "yes"); } } if (this.ignoreDeleteMissingTableFieldSet) { if ((this.ignoreDeleteMissingTableField == YesNoType.no)) { writer.WriteAttributeString("IgnoreDeleteMissingTable", "no"); } if ((this.ignoreDeleteMissingTableField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreDeleteMissingTable", "yes"); } } if (this.ignoreUpdateMissingRowFieldSet) { if ((this.ignoreUpdateMissingRowField == YesNoType.no)) { writer.WriteAttributeString("IgnoreUpdateMissingRow", "no"); } if ((this.ignoreUpdateMissingRowField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreUpdateMissingRow", "yes"); } } if (this.ignoreChangingCodePageFieldSet) { if ((this.ignoreChangingCodePageField == YesNoType.no)) { writer.WriteAttributeString("IgnoreChangingCodePage", "no"); } if ((this.ignoreChangingCodePageField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreChangingCodePage", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("ProductId" == name)) { this.productIdField = Enums.ParseYesNoType(value); this.productIdFieldSet = true; } if (("ProductLanguage" == name)) { this.productLanguageField = Enums.ParseYesNoType(value); this.productLanguageFieldSet = true; } if (("ProductVersion" == name)) { this.productVersionField = Validate.ParseProductVersionType(value); this.productVersionFieldSet = true; } if (("ProductVersionOperator" == name)) { this.productVersionOperatorField = Validate.ParseProductVersionOperatorType(value); this.productVersionOperatorFieldSet = true; } if (("UpgradeCode" == name)) { this.upgradeCodeField = Enums.ParseYesNoType(value); this.upgradeCodeFieldSet = true; } if (("IgnoreAddExistingRow" == name)) { this.ignoreAddExistingRowField = Enums.ParseYesNoType(value); this.ignoreAddExistingRowFieldSet = true; } if (("IgnoreAddExistingTable" == name)) { this.ignoreAddExistingTableField = Enums.ParseYesNoType(value); this.ignoreAddExistingTableFieldSet = true; } if (("IgnoreDeleteMissingRow" == name)) { this.ignoreDeleteMissingRowField = Enums.ParseYesNoType(value); this.ignoreDeleteMissingRowFieldSet = true; } if (("IgnoreDeleteMissingTable" == name)) { this.ignoreDeleteMissingTableField = Enums.ParseYesNoType(value); this.ignoreDeleteMissingTableFieldSet = true; } if (("IgnoreUpdateMissingRow" == name)) { this.ignoreUpdateMissingRowField = Enums.ParseYesNoType(value); this.ignoreUpdateMissingRowFieldSet = true; } if (("IgnoreChangingCodePage" == name)) { this.ignoreChangingCodePageField = Enums.ParseYesNoType(value); this.ignoreChangingCodePageFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ProductVersionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Checks the major version. /// Major, /// /// Checks the major and minor versions. /// Minor, /// /// Checks the major, minor, and update versions. /// Update, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ProductVersionOperatorType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Installed ProductVersion < target ProductVersion. /// Lesser, /// /// Installed ProductVersion <= target ProductVersion. /// LesserOrEqual, /// /// Installed ProductVersion = target ProductVersion. /// Equal, /// /// Installed ProductVersion >= target ProductVersion. /// GreaterOrEqual, /// /// Installed ProductVersion > target ProductVersion. /// Greater, } } /// /// Indicates whether custom actions can be skipped when applying the patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class OptimizeCustomActions : ISchemaElement, ISetAttributes { private YesNoType skipAssignmentField; private bool skipAssignmentFieldSet; private YesNoType skipImmediateField; private bool skipImmediateFieldSet; private YesNoType skipDeferredField; private bool skipDeferredFieldSet; private ISchemaElement parentElement; /// /// Skip property (type 51) and directory (type 35) assignment custom actions. /// public YesNoType SkipAssignment { get { return this.skipAssignmentField; } set { this.skipAssignmentFieldSet = true; this.skipAssignmentField = value; } } /// /// Skip immediate custom actions that are not property or directory assignment custom actions. /// public YesNoType SkipImmediate { get { return this.skipImmediateField; } set { this.skipImmediateFieldSet = true; this.skipImmediateField = value; } } /// /// Skip custom actions that run within the script. /// public YesNoType SkipDeferred { get { return this.skipDeferredField; } set { this.skipDeferredFieldSet = true; this.skipDeferredField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("OptimizeCustomActions", "http://wixtoolset.org/schemas/v4/wxs"); if (this.skipAssignmentFieldSet) { if ((this.skipAssignmentField == YesNoType.no)) { writer.WriteAttributeString("SkipAssignment", "no"); } if ((this.skipAssignmentField == YesNoType.yes)) { writer.WriteAttributeString("SkipAssignment", "yes"); } } if (this.skipImmediateFieldSet) { if ((this.skipImmediateField == YesNoType.no)) { writer.WriteAttributeString("SkipImmediate", "no"); } if ((this.skipImmediateField == YesNoType.yes)) { writer.WriteAttributeString("SkipImmediate", "yes"); } } if (this.skipDeferredFieldSet) { if ((this.skipDeferredField == YesNoType.no)) { writer.WriteAttributeString("SkipDeferred", "no"); } if ((this.skipDeferredField == YesNoType.yes)) { writer.WriteAttributeString("SkipDeferred", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SkipAssignment" == name)) { this.skipAssignmentField = Enums.ParseYesNoType(value); this.skipAssignmentFieldSet = true; } if (("SkipImmediate" == name)) { this.skipImmediateField = Enums.ParseYesNoType(value); this.skipImmediateFieldSet = true; } if (("SkipDeferred" == name)) { this.skipDeferredField = Enums.ParseYesNoType(value); this.skipDeferredFieldSet = true; } } } /// /// Identifies a set of product versions. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchBaseline : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public PatchBaseline() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Validate))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for a set of product versions. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Validate" == childName)) { childValue = new Validate(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchBaseline", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Collection of items that should be kept from the differences between two products. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchFamily : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string productCodeField; private bool productCodeFieldSet; private string versionField; private bool versionFieldSet; private YesNoType supersedeField; private bool supersedeFieldSet; private ISchemaElement parentElement; public PatchFamily() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(All))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(BinaryRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomActionRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificateRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DirectoryRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IconRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier which indicates a sequence family to which this patch belongs. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Specifies the ProductCode of the product that this family applies to. /// public string ProductCode { get { return this.productCodeField; } set { this.productCodeFieldSet = true; this.productCodeField = value; } } /// /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. /// public string Version { get { return this.versionField; } set { this.versionFieldSet = true; this.versionField = value; } } /// /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. /// The default value is 'no'. /// public YesNoType Supersede { get { return this.supersedeField; } set { this.supersedeFieldSet = true; this.supersedeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("All" == childName)) { childValue = new All(); } if (("BinaryRef" == childName)) { childValue = new BinaryRef(); } if (("ComponentRef" == childName)) { childValue = new ComponentRef(); } if (("CustomActionRef" == childName)) { childValue = new CustomActionRef(); } if (("DigitalCertificateRef" == childName)) { childValue = new DigitalCertificateRef(); } if (("DirectoryRef" == childName)) { childValue = new DirectoryRef(); } if (("FeatureRef" == childName)) { childValue = new FeatureRef(); } if (("IconRef" == childName)) { childValue = new IconRef(); } if (("PropertyRef" == childName)) { childValue = new PropertyRef(); } if (("UIRef" == childName)) { childValue = new UIRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchFamily", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.productCodeFieldSet) { writer.WriteAttributeString("ProductCode", this.productCodeField); } if (this.versionFieldSet) { writer.WriteAttributeString("Version", this.versionField); } if (this.supersedeFieldSet) { if ((this.supersedeField == YesNoType.no)) { writer.WriteAttributeString("Supersede", "no"); } if ((this.supersedeField == YesNoType.yes)) { writer.WriteAttributeString("Supersede", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("ProductCode" == name)) { this.productCodeField = value; this.productCodeFieldSet = true; } if (("Version" == name)) { this.versionField = value; this.versionFieldSet = true; } if (("Supersede" == name)) { this.supersedeField = Enums.ParseYesNoType(value); this.supersedeFieldSet = true; } } } /// /// Groups together multiple patch families to be used in other locations. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchFamilyGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public PatchFamilyGroup() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamily))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFamilyGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for the PatchFamilyGroup. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("PatchFamily" == childName)) { childValue = new PatchFamily(); } if (("PatchFamilyRef" == childName)) { childValue = new PatchFamilyRef(); } if (("PatchFamilyGroupRef" == childName)) { childValue = new PatchFamilyGroupRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchFamilyGroup", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Create a reference to a PatchFamilyGroup in another Fragment. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchFamilyGroupRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of the PatchFamilyGroup to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchFamilyGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// The PatchCreation element is analogous to the main function in a C program. When linking, only one PatchCreation section /// can be given to the linker to produce a successful result. Using this element creates a pcp file. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchCreation : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private YesNoType allowMajorVersionMismatchesField; private bool allowMajorVersionMismatchesFieldSet; private YesNoType allowProductCodeMismatchesField; private bool allowProductCodeMismatchesFieldSet; private YesNoType cleanWorkingFolderField; private bool cleanWorkingFolderFieldSet; private string codepageField; private bool codepageFieldSet; private string outputPathField; private bool outputPathFieldSet; private string sourceListField; private bool sourceListFieldSet; private int symbolFlagsField; private bool symbolFlagsFieldSet; private YesNoType wholeFilesOnlyField; private bool wholeFilesOnlyFieldSet; private ISchemaElement parentElement; public PatchCreation() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchInformation))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(PatchMetadata))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Family))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchProperty))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchSequence))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ReplacePatch))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// PatchCreation identifier; this is the primary key for identifying patches. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Use this to set whether the major versions between the upgrade and target images match. See /// public YesNoType AllowMajorVersionMismatches { get { return this.allowMajorVersionMismatchesField; } set { this.allowMajorVersionMismatchesFieldSet = true; this.allowMajorVersionMismatchesField = value; } } /// /// Use this to set whether the product code between the upgrade and target images match. See /// public YesNoType AllowProductCodeMismatches { get { return this.allowProductCodeMismatchesField; } set { this.allowProductCodeMismatchesFieldSet = true; this.allowProductCodeMismatchesField = value; } } /// /// Use this to set whether Patchwiz should clean the temp folder when finished. See /// public YesNoType CleanWorkingFolder { get { return this.cleanWorkingFolderField; } set { this.cleanWorkingFolderFieldSet = true; this.cleanWorkingFolderField = value; } } /// /// The code page integer value or web name for the resulting PCP. See remarks for more information. /// public string Codepage { get { return this.codepageField; } set { this.codepageFieldSet = true; this.codepageField = value; } } /// /// The full path, including file name, of the patch package file that is to be generated. See /// public string OutputPath { get { return this.outputPathField; } set { this.outputPathFieldSet = true; this.outputPathField = value; } } /// /// Used to locate the .msp file for the patch if the cached copy is unavailable. See /// public string SourceList { get { return this.sourceListField; } set { this.sourceListFieldSet = true; this.sourceListField = value; } } /// /// An 8-digit hex integer representing the combination of patch symbol usage flags to use when creating a binary file patch. See /// public int SymbolFlags { get { return this.symbolFlagsField; } set { this.symbolFlagsFieldSet = true; this.symbolFlagsField = value; } } /// /// Use this to set whether changing files should be included in their entirety. See /// public YesNoType WholeFilesOnly { get { return this.wholeFilesOnlyField; } set { this.wholeFilesOnlyFieldSet = true; this.wholeFilesOnlyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("PatchInformation" == childName)) { childValue = new PatchInformation(); } if (("PatchMetadata" == childName)) { childValue = new PatchMetadata(); } if (("Family" == childName)) { childValue = new Family(); } if (("PatchProperty" == childName)) { childValue = new PatchProperty(); } if (("PatchSequence" == childName)) { childValue = new PatchSequence(); } if (("ReplacePatch" == childName)) { childValue = new ReplacePatch(); } if (("TargetProductCode" == childName)) { childValue = new TargetProductCode(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchCreation", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.allowMajorVersionMismatchesFieldSet) { if ((this.allowMajorVersionMismatchesField == YesNoType.no)) { writer.WriteAttributeString("AllowMajorVersionMismatches", "no"); } if ((this.allowMajorVersionMismatchesField == YesNoType.yes)) { writer.WriteAttributeString("AllowMajorVersionMismatches", "yes"); } } if (this.allowProductCodeMismatchesFieldSet) { if ((this.allowProductCodeMismatchesField == YesNoType.no)) { writer.WriteAttributeString("AllowProductCodeMismatches", "no"); } if ((this.allowProductCodeMismatchesField == YesNoType.yes)) { writer.WriteAttributeString("AllowProductCodeMismatches", "yes"); } } if (this.cleanWorkingFolderFieldSet) { if ((this.cleanWorkingFolderField == YesNoType.no)) { writer.WriteAttributeString("CleanWorkingFolder", "no"); } if ((this.cleanWorkingFolderField == YesNoType.yes)) { writer.WriteAttributeString("CleanWorkingFolder", "yes"); } } if (this.codepageFieldSet) { writer.WriteAttributeString("Codepage", this.codepageField); } if (this.outputPathFieldSet) { writer.WriteAttributeString("OutputPath", this.outputPathField); } if (this.sourceListFieldSet) { writer.WriteAttributeString("SourceList", this.sourceListField); } if (this.symbolFlagsFieldSet) { writer.WriteAttributeString("SymbolFlags", this.symbolFlagsField.ToString(CultureInfo.InvariantCulture)); } if (this.wholeFilesOnlyFieldSet) { if ((this.wholeFilesOnlyField == YesNoType.no)) { writer.WriteAttributeString("WholeFilesOnly", "no"); } if ((this.wholeFilesOnlyField == YesNoType.yes)) { writer.WriteAttributeString("WholeFilesOnly", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("AllowMajorVersionMismatches" == name)) { this.allowMajorVersionMismatchesField = Enums.ParseYesNoType(value); this.allowMajorVersionMismatchesFieldSet = true; } if (("AllowProductCodeMismatches" == name)) { this.allowProductCodeMismatchesField = Enums.ParseYesNoType(value); this.allowProductCodeMismatchesFieldSet = true; } if (("CleanWorkingFolder" == name)) { this.cleanWorkingFolderField = Enums.ParseYesNoType(value); this.cleanWorkingFolderFieldSet = true; } if (("Codepage" == name)) { this.codepageField = value; this.codepageFieldSet = true; } if (("OutputPath" == name)) { this.outputPathField = value; this.outputPathFieldSet = true; } if (("SourceList" == name)) { this.sourceListField = value; this.sourceListFieldSet = true; } if (("SymbolFlags" == name)) { this.symbolFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.symbolFlagsFieldSet = true; } if (("WholeFilesOnly" == name)) { this.wholeFilesOnlyField = Enums.ParseYesNoType(value); this.wholeFilesOnlyFieldSet = true; } } } /// /// Properties about the patch to be placed in the Summary Information Stream. These are visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchInformation : ISchemaElement, ISetAttributes { private string descriptionField; private bool descriptionFieldSet; private string platformsField; private bool platformsFieldSet; private string languagesField; private bool languagesFieldSet; private string manufacturerField; private bool manufacturerFieldSet; private string keywordsField; private bool keywordsFieldSet; private string commentsField; private bool commentsFieldSet; private YesNoDefaultType readOnlyField; private bool readOnlyFieldSet; private string summaryCodepageField; private bool summaryCodepageFieldSet; private YesNoType shortNamesField; private bool shortNamesFieldSet; private YesNoType compressedField; private bool compressedFieldSet; private YesNoType adminImageField; private bool adminImageFieldSet; private ISchemaElement parentElement; /// /// A short description of the patch that includes the name of the product. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } public string Platforms { get { return this.platformsField; } set { this.platformsFieldSet = true; this.platformsField = value; } } public string Languages { get { return this.languagesField; } set { this.languagesFieldSet = true; this.languagesField = value; } } /// /// The name of the manufacturer of the patch package. /// public string Manufacturer { get { return this.manufacturerField; } set { this.manufacturerFieldSet = true; this.manufacturerField = value; } } /// /// A semicolon-delimited list of network or URL locations for alternate sources of the patch. The default is "Installer,Patching,PCP,Database". /// public string Keywords { get { return this.keywordsField; } set { this.keywordsFieldSet = true; this.keywordsField = value; } } /// /// General purpose of the patch package. For example, "This patch contains the logic and data required to install /// public string Comments { get { return this.commentsField; } set { this.commentsFieldSet = true; this.commentsField = value; } } /// /// The value of this attribute conveys whether the package should be opened as read-only. /// A database editing tool should not modify a read-only enforced database and should /// issue a warning at attempts to modify a read-only recommended database. /// public YesNoDefaultType ReadOnly { get { return this.readOnlyField; } set { this.readOnlyFieldSet = true; this.readOnlyField = value; } } /// /// The code page integer value or web name for summary info strings only. The default is 1252. See remarks for more information. /// public string SummaryCodepage { get { return this.summaryCodepageField; } set { this.summaryCodepageFieldSet = true; this.summaryCodepageField = value; } } public YesNoType ShortNames { get { return this.shortNamesField; } set { this.shortNamesFieldSet = true; this.shortNamesField = value; } } public YesNoType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } public YesNoType AdminImage { get { return this.adminImageField; } set { this.adminImageFieldSet = true; this.adminImageField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchInformation", "http://wixtoolset.org/schemas/v4/wxs"); if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.platformsFieldSet) { writer.WriteAttributeString("Platforms", this.platformsField); } if (this.languagesFieldSet) { writer.WriteAttributeString("Languages", this.languagesField); } if (this.manufacturerFieldSet) { writer.WriteAttributeString("Manufacturer", this.manufacturerField); } if (this.keywordsFieldSet) { writer.WriteAttributeString("Keywords", this.keywordsField); } if (this.commentsFieldSet) { writer.WriteAttributeString("Comments", this.commentsField); } if (this.readOnlyFieldSet) { if ((this.readOnlyField == YesNoDefaultType.@default)) { writer.WriteAttributeString("ReadOnly", "default"); } if ((this.readOnlyField == YesNoDefaultType.no)) { writer.WriteAttributeString("ReadOnly", "no"); } if ((this.readOnlyField == YesNoDefaultType.yes)) { writer.WriteAttributeString("ReadOnly", "yes"); } } if (this.summaryCodepageFieldSet) { writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); } if (this.shortNamesFieldSet) { if ((this.shortNamesField == YesNoType.no)) { writer.WriteAttributeString("ShortNames", "no"); } if ((this.shortNamesField == YesNoType.yes)) { writer.WriteAttributeString("ShortNames", "yes"); } } if (this.compressedFieldSet) { if ((this.compressedField == YesNoType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.adminImageFieldSet) { if ((this.adminImageField == YesNoType.no)) { writer.WriteAttributeString("AdminImage", "no"); } if ((this.adminImageField == YesNoType.yes)) { writer.WriteAttributeString("AdminImage", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("Platforms" == name)) { this.platformsField = value; this.platformsFieldSet = true; } if (("Languages" == name)) { this.languagesField = value; this.languagesFieldSet = true; } if (("Manufacturer" == name)) { this.manufacturerField = value; this.manufacturerFieldSet = true; } if (("Keywords" == name)) { this.keywordsField = value; this.keywordsFieldSet = true; } if (("Comments" == name)) { this.commentsField = value; this.commentsFieldSet = true; } if (("ReadOnly" == name)) { this.readOnlyField = Enums.ParseYesNoDefaultType(value); this.readOnlyFieldSet = true; } if (("SummaryCodepage" == name)) { this.summaryCodepageField = value; this.summaryCodepageFieldSet = true; } if (("ShortNames" == name)) { this.shortNamesField = Enums.ParseYesNoType(value); this.shortNamesFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoType(value); this.compressedFieldSet = true; } if (("AdminImage" == name)) { this.adminImageField = Enums.ParseYesNoType(value); this.adminImageFieldSet = true; } } } /// /// Properties about the patch to be placed in the PatchMetadata table. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchMetadata : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private YesNoType allowRemovalField; private bool allowRemovalFieldSet; private string classificationField; private bool classificationFieldSet; private string creationTimeUTCField; private bool creationTimeUTCFieldSet; private string descriptionField; private bool descriptionFieldSet; private string displayNameField; private bool displayNameFieldSet; private string manufacturerNameField; private bool manufacturerNameFieldSet; private string minorUpdateTargetRTMField; private bool minorUpdateTargetRTMFieldSet; private string moreInfoURLField; private bool moreInfoURLFieldSet; private YesNoType optimizedInstallModeField; private bool optimizedInstallModeFieldSet; private string targetProductNameField; private bool targetProductNameFieldSet; private ISchemaElement parentElement; public PatchMetadata() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(CustomProperty))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(OptimizeCustomActions))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Whether this is an uninstallable patch. /// public YesNoType AllowRemoval { get { return this.allowRemovalField; } set { this.allowRemovalFieldSet = true; this.allowRemovalField = value; } } /// /// Category of updates. Recommended values are Critical Update, Hotfix, Security Rollup, Security Update, Service Pack, Update, Update Rollup. /// public string Classification { get { return this.classificationField; } set { this.classificationFieldSet = true; this.classificationField = value; } } /// /// Creation time of the .msp file in the form mm-dd-yy HH:MM (month-day-year hour:minute). /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public string CreationTimeUTC { get { return this.creationTimeUTCField; } set { this.creationTimeUTCFieldSet = true; this.creationTimeUTCField = value; } } /// /// Description of the patch. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// Name of the manufacturer. /// public string ManufacturerName { get { return this.manufacturerNameField; } set { this.manufacturerNameFieldSet = true; this.manufacturerNameField = value; } } /// /// Indicates that the patch targets the RTM version of the product or the most recent major /// upgrade patch. Author this optional property in minor update patches that contain sequencing /// information to indicate that the patch removes all patches up to the RTM version of the /// product, or up to the most recent major upgrade patch. This property is available beginning /// with Windows Installer 3.1. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public string MinorUpdateTargetRTM { get { return this.minorUpdateTargetRTMField; } set { this.minorUpdateTargetRTMFieldSet = true; this.minorUpdateTargetRTMField = value; } } /// /// A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public string MoreInfoURL { get { return this.moreInfoURLField; } set { this.moreInfoURLFieldSet = true; this.moreInfoURLField = value; } } /// /// If this attribute is set to 'yes' in all the patches to be applied in a transaction, the /// application of the patch is optimized if possible. Available beginning with Windows Installer 3.1. /// public YesNoType OptimizedInstallMode { get { return this.optimizedInstallModeField; } set { this.optimizedInstallModeFieldSet = true; this.optimizedInstallModeField = value; } } /// /// Name of the application or target product suite. /// public string TargetProductName { get { return this.targetProductNameField; } set { this.targetProductNameFieldSet = true; this.targetProductNameField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("CustomProperty" == childName)) { childValue = new CustomProperty(); } if (("OptimizeCustomActions" == childName)) { childValue = new OptimizeCustomActions(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchMetadata", "http://wixtoolset.org/schemas/v4/wxs"); if (this.allowRemovalFieldSet) { if ((this.allowRemovalField == YesNoType.no)) { writer.WriteAttributeString("AllowRemoval", "no"); } if ((this.allowRemovalField == YesNoType.yes)) { writer.WriteAttributeString("AllowRemoval", "yes"); } } if (this.classificationFieldSet) { writer.WriteAttributeString("Classification", this.classificationField); } if (this.creationTimeUTCFieldSet) { writer.WriteAttributeString("CreationTimeUTC", this.creationTimeUTCField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.manufacturerNameFieldSet) { writer.WriteAttributeString("ManufacturerName", this.manufacturerNameField); } if (this.minorUpdateTargetRTMFieldSet) { writer.WriteAttributeString("MinorUpdateTargetRTM", this.minorUpdateTargetRTMField); } if (this.moreInfoURLFieldSet) { writer.WriteAttributeString("MoreInfoURL", this.moreInfoURLField); } if (this.optimizedInstallModeFieldSet) { if ((this.optimizedInstallModeField == YesNoType.no)) { writer.WriteAttributeString("OptimizedInstallMode", "no"); } if ((this.optimizedInstallModeField == YesNoType.yes)) { writer.WriteAttributeString("OptimizedInstallMode", "yes"); } } if (this.targetProductNameFieldSet) { writer.WriteAttributeString("TargetProductName", this.targetProductNameField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("AllowRemoval" == name)) { this.allowRemovalField = Enums.ParseYesNoType(value); this.allowRemovalFieldSet = true; } if (("Classification" == name)) { this.classificationField = value; this.classificationFieldSet = true; } if (("CreationTimeUTC" == name)) { this.creationTimeUTCField = value; this.creationTimeUTCFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("ManufacturerName" == name)) { this.manufacturerNameField = value; this.manufacturerNameFieldSet = true; } if (("MinorUpdateTargetRTM" == name)) { this.minorUpdateTargetRTMField = value; this.minorUpdateTargetRTMFieldSet = true; } if (("MoreInfoURL" == name)) { this.moreInfoURLField = value; this.moreInfoURLFieldSet = true; } if (("OptimizedInstallMode" == name)) { this.optimizedInstallModeField = Enums.ParseYesNoType(value); this.optimizedInstallModeFieldSet = true; } if (("TargetProductName" == name)) { this.targetProductNameField = value; this.targetProductNameFieldSet = true; } } } /// /// A custom property for the PatchMetadata table. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CustomProperty : ISchemaElement, ISetAttributes { private string companyField; private bool companyFieldSet; private string propertyField; private bool propertyFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// The name of the company. /// public string Company { get { return this.companyField; } set { this.companyFieldSet = true; this.companyField = value; } } /// /// The name of the metadata property. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// Value of the metadata property. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CustomProperty", "http://wixtoolset.org/schemas/v4/wxs"); if (this.companyFieldSet) { writer.WriteAttributeString("Company", this.companyField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Company" == name)) { this.companyField = value; this.companyFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// A patch that is deprecated by this patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ReplacePatch : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// Patch GUID to be unregistered if it exists on the machine targeted by this patch. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ReplacePatch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// The product codes for products that can accept the patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class TargetProductCodes : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private YesNoType replaceField; private bool replaceFieldSet; private ISchemaElement parentElement; public TargetProductCodes() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetProductCode))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Whether to replace the product codes that can accept the patch from the target packages with the child elements. /// public YesNoType Replace { get { return this.replaceField; } set { this.replaceFieldSet = true; this.replaceField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("TargetProductCode" == childName)) { childValue = new TargetProductCode(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("TargetProductCodes", "http://wixtoolset.org/schemas/v4/wxs"); if (this.replaceFieldSet) { if ((this.replaceField == YesNoType.no)) { writer.WriteAttributeString("Replace", "no"); } if ((this.replaceField == YesNoType.yes)) { writer.WriteAttributeString("Replace", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Replace" == name)) { this.replaceField = Enums.ParseYesNoType(value); this.replaceFieldSet = true; } } } /// /// A product code for a product that can accept the patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class TargetProductCode : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The product code for a product that can accept the patch. This can be '*'. See remarks for more information. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("TargetProductCode", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// A property for this patch database. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchProperty : ISchemaElement, ISetAttributes { private string companyField; private bool companyFieldSet; private string nameField; private bool nameFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Name of the company for a custom metadata property. /// public string Company { get { return this.companyField; } set { this.companyFieldSet = true; this.companyField = value; } } /// /// Name of the patch property. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Value of the patch property. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchProperty", "http://wixtoolset.org/schemas/v4/wxs"); if (this.companyFieldSet) { writer.WriteAttributeString("Company", this.companyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Company" == name)) { this.companyField = value; this.companyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchSequence : ISchemaElement, ISetAttributes { private string patchFamilyField; private bool patchFamilyFieldSet; private string productCodeField; private bool productCodeFieldSet; private string sequenceField; private bool sequenceFieldSet; private YesNoType supersedeField; private bool supersedeFieldSet; private string targetField; private bool targetFieldSet; private string targetImageField; private bool targetImageFieldSet; private ISchemaElement parentElement; /// /// Identifier which indicates a sequence family to which this patch belongs. /// public string PatchFamily { get { return this.patchFamilyField; } set { this.patchFamilyFieldSet = true; this.patchFamilyField = value; } } /// /// Specifies the ProductCode of the product that this family applies to. /// This attribute cannot the specified if the TargetImage attribute is specified. /// public string ProductCode { get { return this.productCodeField; } set { this.productCodeFieldSet = true; this.productCodeField = value; } } /// /// Used to populate the sequence column of the MsiPatchSequence table in the final MSP file. Specified in x.x.x.x format. See documentation for Sequence column of MsiPatchSequence table in MSI SDK. /// public string Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } /// /// Set this value to 'yes' to indicate that this patch will supersede all previous patches in this patch family. /// The default value is 'no'. /// public YesNoType Supersede { get { return this.supersedeField; } set { this.supersedeFieldSet = true; this.supersedeField = value; } } public string Target { get { return this.targetField; } set { this.targetFieldSet = true; this.targetField = value; } } /// /// Specifies the TargetImage that this family applies to. /// This attribute cannot the specified if the ProductCode attribute is specified. /// public string TargetImage { get { return this.targetImageField; } set { this.targetImageFieldSet = true; this.targetImageField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchSequence", "http://wixtoolset.org/schemas/v4/wxs"); if (this.patchFamilyFieldSet) { writer.WriteAttributeString("PatchFamily", this.patchFamilyField); } if (this.productCodeFieldSet) { writer.WriteAttributeString("ProductCode", this.productCodeField); } if (this.sequenceFieldSet) { writer.WriteAttributeString("Sequence", this.sequenceField); } if (this.supersedeFieldSet) { if ((this.supersedeField == YesNoType.no)) { writer.WriteAttributeString("Supersede", "no"); } if ((this.supersedeField == YesNoType.yes)) { writer.WriteAttributeString("Supersede", "yes"); } } if (this.targetFieldSet) { writer.WriteAttributeString("Target", this.targetField); } if (this.targetImageFieldSet) { writer.WriteAttributeString("TargetImage", this.targetImageField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("PatchFamily" == name)) { this.patchFamilyField = value; this.patchFamilyFieldSet = true; } if (("ProductCode" == name)) { this.productCodeField = value; this.productCodeFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = value; this.sequenceFieldSet = true; } if (("Supersede" == name)) { this.supersedeField = Enums.ParseYesNoType(value); this.supersedeFieldSet = true; } if (("Target" == name)) { this.targetField = value; this.targetFieldSet = true; } if (("TargetImage" == name)) { this.targetImageField = value; this.targetImageFieldSet = true; } } } /// /// Group of one or more upgraded images of a product. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Family : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string diskIdField; private bool diskIdFieldSet; private string diskPromptField; private bool diskPromptFieldSet; private string mediaSrcPropField; private bool mediaSrcPropFieldSet; private string nameField; private bool nameFieldSet; private int sequenceStartField; private bool sequenceStartFieldSet; private string volumeLabelField; private bool volumeLabelFieldSet; private ISchemaElement parentElement; public Family() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(UpgradeImage))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ExternalFile))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectFile))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Entered into the DiskId field of the new Media table record. /// public string DiskId { get { return this.diskIdField; } set { this.diskIdFieldSet = true; this.diskIdField = value; } } /// /// Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. /// public string DiskPrompt { get { return this.diskPromptField; } set { this.diskPromptFieldSet = true; this.diskPromptField = value; } } /// /// Entered into the Source field of the new Media table entry of the upgraded image. /// public string MediaSrcProp { get { return this.mediaSrcPropField; } set { this.mediaSrcPropFieldSet = true; this.mediaSrcPropField = value; } } /// /// Identifier for the family. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Sequence number for the starting file. /// public int SequenceStart { get { return this.sequenceStartField; } set { this.sequenceStartFieldSet = true; this.sequenceStartField = value; } } /// /// Entered into the VolumeLabel field of the new Media table record. /// public string VolumeLabel { get { return this.volumeLabelField; } set { this.volumeLabelFieldSet = true; this.volumeLabelField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("UpgradeImage" == childName)) { childValue = new UpgradeImage(); } if (("ExternalFile" == childName)) { childValue = new ExternalFile(); } if (("ProtectFile" == childName)) { childValue = new ProtectFile(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Family", "http://wixtoolset.org/schemas/v4/wxs"); if (this.diskIdFieldSet) { writer.WriteAttributeString("DiskId", this.diskIdField); } if (this.diskPromptFieldSet) { writer.WriteAttributeString("DiskPrompt", this.diskPromptField); } if (this.mediaSrcPropFieldSet) { writer.WriteAttributeString("MediaSrcProp", this.mediaSrcPropField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.sequenceStartFieldSet) { writer.WriteAttributeString("SequenceStart", this.sequenceStartField.ToString(CultureInfo.InvariantCulture)); } if (this.volumeLabelFieldSet) { writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("DiskId" == name)) { this.diskIdField = value; this.diskIdFieldSet = true; } if (("DiskPrompt" == name)) { this.diskPromptField = value; this.diskPromptFieldSet = true; } if (("MediaSrcProp" == name)) { this.mediaSrcPropField = value; this.mediaSrcPropFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("SequenceStart" == name)) { this.sequenceStartField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sequenceStartFieldSet = true; } if (("VolumeLabel" == name)) { this.volumeLabelField = value; this.volumeLabelFieldSet = true; } } } /// /// Contains information about the upgraded images of the product. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UpgradeImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string srcField; private bool srcFieldSet; private string sourcePatchField; private bool sourcePatchFieldSet; private string srcPatchField; private bool srcPatchFieldSet; private ISchemaElement parentElement; public UpgradeImage() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(TargetImage))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeFile))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier to connect target images with upgraded image. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Full path to location of msi file for upgraded image. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } /// /// Modified copy of the upgraded installation database that contains additional authoring specific to patching. /// public string SourcePatch { get { return this.sourcePatchField; } set { this.sourcePatchFieldSet = true; this.sourcePatchField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string srcPatch { get { return this.srcPatchField; } set { this.srcPatchFieldSet = true; this.srcPatchField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("TargetImage" == childName)) { childValue = new TargetImage(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("UpgradeFile" == childName)) { childValue = new UpgradeFile(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UpgradeImage", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.sourcePatchFieldSet) { writer.WriteAttributeString("SourcePatch", this.sourcePatchField); } if (this.srcPatchFieldSet) { writer.WriteAttributeString("srcPatch", this.srcPatchField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("SourcePatch" == name)) { this.sourcePatchField = value; this.sourcePatchFieldSet = true; } if (("srcPatch" == name)) { this.srcPatchField = value; this.srcPatchFieldSet = true; } } } /// /// Contains information about the target images of the product. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class TargetImage : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string srcField; private bool srcFieldSet; private int orderField; private bool orderFieldSet; private string validationField; private bool validationFieldSet; private YesNoType ignoreMissingFilesField; private bool ignoreMissingFilesFieldSet; private ISchemaElement parentElement; public TargetImage() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TargetFile))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for the target image. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Full path to the location of the msi file for the target image. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } /// /// Relative order of the target image. /// public int Order { get { return this.orderField; } set { this.orderFieldSet = true; this.orderField = value; } } /// /// Product checking to avoid applying irrelevant transforms. /// public string Validation { get { return this.validationField; } set { this.validationFieldSet = true; this.validationField = value; } } /// /// Files missing from the target image are ignored by the installer. /// public YesNoType IgnoreMissingFiles { get { return this.ignoreMissingFilesField; } set { this.ignoreMissingFilesFieldSet = true; this.ignoreMissingFilesField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("TargetFile" == childName)) { childValue = new TargetFile(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("TargetImage", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.orderFieldSet) { writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); } if (this.validationFieldSet) { writer.WriteAttributeString("Validation", this.validationField); } if (this.ignoreMissingFilesFieldSet) { if ((this.ignoreMissingFilesField == YesNoType.no)) { writer.WriteAttributeString("IgnoreMissingFiles", "no"); } if ((this.ignoreMissingFilesField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreMissingFiles", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("Order" == name)) { this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.orderFieldSet = true; } if (("Validation" == name)) { this.validationField = value; this.validationFieldSet = true; } if (("IgnoreMissingFiles" == name)) { this.ignoreMissingFilesField = Enums.ParseYesNoType(value); this.ignoreMissingFilesFieldSet = true; } } } /// /// Information about specific files in a target image. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class TargetFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public TargetFile() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Foreign key into the File table. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("IgnoreRange" == childName)) { childValue = new IgnoreRange(); } if (("ProtectRange" == childName)) { childValue = new ProtectRange(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("TargetFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Specifies part of a file that is to be ignored during patching. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IgnoreRange : ISchemaElement, ISetAttributes { private int offsetField; private bool offsetFieldSet; private int lengthField; private bool lengthFieldSet; private ISchemaElement parentElement; /// /// Offset of the start of the range. /// public int Offset { get { return this.offsetField; } set { this.offsetFieldSet = true; this.offsetField = value; } } /// /// Length of the range. /// public int Length { get { return this.lengthField; } set { this.lengthFieldSet = true; this.lengthField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IgnoreRange", "http://wixtoolset.org/schemas/v4/wxs"); if (this.offsetFieldSet) { writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); } if (this.lengthFieldSet) { writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Offset" == name)) { this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.offsetFieldSet = true; } if (("Length" == name)) { this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.lengthFieldSet = true; } } } /// /// Specifies part of a file that cannot be overwritten during patching. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ProtectRange : ISchemaElement, ISetAttributes { private int offsetField; private bool offsetFieldSet; private int lengthField; private bool lengthFieldSet; private ISchemaElement parentElement; /// /// Offset of the start of the range. /// public int Offset { get { return this.offsetField; } set { this.offsetFieldSet = true; this.offsetField = value; } } /// /// Length of the range. /// public int Length { get { return this.lengthField; } set { this.lengthFieldSet = true; this.lengthField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ProtectRange", "http://wixtoolset.org/schemas/v4/wxs"); if (this.offsetFieldSet) { writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); } if (this.lengthFieldSet) { writer.WriteAttributeString("Length", this.lengthField.ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Offset" == name)) { this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.offsetFieldSet = true; } if (("Length" == name)) { this.lengthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.lengthFieldSet = true; } } } /// /// Specifies a file to be protected. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ProtectFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string fileField; private bool fileFieldSet; private ISchemaElement parentElement; public ProtectFile() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProtectRange))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Foreign key into the File table. /// public string File { get { return this.fileField; } set { this.fileFieldSet = true; this.fileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ProtectRange" == childName)) { childValue = new ProtectRange(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ProtectFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.fileFieldSet) { writer.WriteAttributeString("File", this.fileField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("File" == name)) { this.fileField = value; this.fileFieldSet = true; } } } /// /// Contains information about specific files that are not part of a regular target image. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ExternalFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string fileField; private bool fileFieldSet; private string sourceField; private bool sourceFieldSet; private string srcField; private bool srcFieldSet; private int orderField; private bool orderFieldSet; private ISchemaElement parentElement; public ExternalFile() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProtectRange))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(SymbolPath))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(IgnoreRange))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Foreign key into the File table. /// public string File { get { return this.fileField; } set { this.fileFieldSet = true; this.fileField = value; } } /// /// Full path of the external file. /// public string Source { get { return this.sourceField; } set { this.sourceFieldSet = true; this.sourceField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } /// /// Specifies the order of the external files to use when creating the patch. /// public int Order { get { return this.orderField; } set { this.orderFieldSet = true; this.orderField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ProtectRange" == childName)) { childValue = new ProtectRange(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("IgnoreRange" == childName)) { childValue = new IgnoreRange(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ExternalFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.fileFieldSet) { writer.WriteAttributeString("File", this.fileField); } if (this.sourceFieldSet) { writer.WriteAttributeString("Source", this.sourceField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.orderFieldSet) { writer.WriteAttributeString("Order", this.orderField.ToString(CultureInfo.InvariantCulture)); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("File" == name)) { this.fileField = value; this.fileFieldSet = true; } if (("Source" == name)) { this.sourceField = value; this.sourceFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("Order" == name)) { this.orderField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.orderFieldSet = true; } } } /// /// Specifies files to either ignore or to specify optional data about a file. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UpgradeFile : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string fileField; private bool fileFieldSet; private YesNoType ignoreField; private bool ignoreFieldSet; private YesNoType allowIgnoreOnErrorField; private bool allowIgnoreOnErrorFieldSet; private YesNoType wholeFileField; private bool wholeFileFieldSet; private ISchemaElement parentElement; public UpgradeFile() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Foreign key into the File table. /// public string File { get { return this.fileField; } set { this.fileFieldSet = true; this.fileField = value; } } /// /// If yes, the file is ignored during patching, and the next two attributes are ignored. /// public YesNoType Ignore { get { return this.ignoreField; } set { this.ignoreFieldSet = true; this.ignoreField = value; } } /// /// Specifies whether patching this file is vital. /// public YesNoType AllowIgnoreOnError { get { return this.allowIgnoreOnErrorField; } set { this.allowIgnoreOnErrorFieldSet = true; this.allowIgnoreOnErrorField = value; } } /// /// Whether the whole file should be installed, rather than creating a binary patch. /// public YesNoType WholeFile { get { return this.wholeFileField; } set { this.wholeFileFieldSet = true; this.wholeFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UpgradeFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.fileFieldSet) { writer.WriteAttributeString("File", this.fileField); } if (this.ignoreFieldSet) { if ((this.ignoreField == YesNoType.no)) { writer.WriteAttributeString("Ignore", "no"); } if ((this.ignoreField == YesNoType.yes)) { writer.WriteAttributeString("Ignore", "yes"); } } if (this.allowIgnoreOnErrorFieldSet) { if ((this.allowIgnoreOnErrorField == YesNoType.no)) { writer.WriteAttributeString("AllowIgnoreOnError", "no"); } if ((this.allowIgnoreOnErrorField == YesNoType.yes)) { writer.WriteAttributeString("AllowIgnoreOnError", "yes"); } } if (this.wholeFileFieldSet) { if ((this.wholeFileField == YesNoType.no)) { writer.WriteAttributeString("WholeFile", "no"); } if ((this.wholeFileField == YesNoType.yes)) { writer.WriteAttributeString("WholeFile", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("File" == name)) { this.fileField = value; this.fileFieldSet = true; } if (("Ignore" == name)) { this.ignoreField = Enums.ParseYesNoType(value); this.ignoreFieldSet = true; } if (("AllowIgnoreOnError" == name)) { this.allowIgnoreOnErrorField = Enums.ParseYesNoType(value); this.allowIgnoreOnErrorFieldSet = true; } if (("WholeFile" == name)) { this.wholeFileField = Enums.ParseYesNoType(value); this.wholeFileFieldSet = true; } } } /// /// A path to symbols. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SymbolPath : ISchemaElement, ISetAttributes { private string pathField; private bool pathFieldSet; private ISchemaElement parentElement; /// /// The path. /// public string Path { get { return this.pathField; } set { this.pathFieldSet = true; this.pathField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SymbolPath", "http://wixtoolset.org/schemas/v4/wxs"); if (this.pathFieldSet) { writer.WriteAttributeString("Path", this.pathField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Path" == name)) { this.pathField = value; this.pathFieldSet = true; } } } /// /// Properties about the package to be placed in the Summary Information Stream. These are /// visible from COM through the IStream interface, and these properties can be seen on the package in Explorer. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SummaryInformation : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType adminImageField; private bool adminImageFieldSet; private string commentsField; private bool commentsFieldSet; private YesNoType compressedField; private bool compressedFieldSet; private string descriptionField; private bool descriptionFieldSet; private InstallPrivilegesType installPrivilegesField; private bool installPrivilegesFieldSet; private InstallScopeType installScopeField; private bool installScopeFieldSet; private int installerVersionField; private bool installerVersionFieldSet; private string keywordsField; private bool keywordsFieldSet; private string languagesField; private bool languagesFieldSet; private string manufacturerField; private bool manufacturerFieldSet; private string platformsField; private bool platformsFieldSet; private PlatformType platformField; private bool platformFieldSet; private YesNoDefaultType readOnlyField; private bool readOnlyFieldSet; private YesNoType shortNamesField; private bool shortNamesFieldSet; private string summaryCodepageField; private bool summaryCodepageFieldSet; private ISchemaElement parentElement; /// /// The package code GUID for a product or merge module. /// When compiling a product, this attribute should not be set in order to allow the package /// code to be generated for each build. /// When compiling a merge module, this attribute must be set to the modularization guid. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set to 'yes' if the source is an admin image. /// public YesNoType AdminImage { get { return this.adminImageField; } set { this.adminImageFieldSet = true; this.adminImageField = value; } } /// /// Optional comments for browsing. /// public string Comments { get { return this.commentsField; } set { this.commentsFieldSet = true; this.commentsField = value; } } /// /// Set to 'yes' to have compressed files in the source. /// This attribute cannot be set for merge modules. /// public YesNoType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// The product full name or description. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Use this attribute to specify the priviliges required to install the package on Windows Vista and above. /// public InstallPrivilegesType InstallPrivileges { get { return this.installPrivilegesField; } set { this.installPrivilegesFieldSet = true; this.installPrivilegesField = value; } } /// /// Use this attribute to specify the installation scope of this package: per-machine or per-user. /// public InstallScopeType InstallScope { get { return this.installScopeField; } set { this.installScopeFieldSet = true; this.installScopeField = value; } } /// /// The minimum version of the Windows Installer required to install this package. Take the major version of the required Windows Installer /// and multiply by a 100 then add the minor version of the Windows Installer. For example, "200" would represent Windows Installer 2.0 and /// "405" would represent Windows Installer 4.5. For 64-bit Windows Installer packages, this property is set to 200 by default as /// Windows Installer 2.0 was the first version to support 64-bit packages. /// public int InstallerVersion { get { return this.installerVersionField; } set { this.installerVersionFieldSet = true; this.installerVersionField = value; } } /// /// Optional keywords for browsing. /// public string Keywords { get { return this.keywordsField; } set { this.keywordsFieldSet = true; this.keywordsField = value; } } /// /// The list of language IDs (LCIDs) supported in the package. /// public string Languages { get { return this.languagesField; } set { this.languagesFieldSet = true; this.languagesField = value; } } /// /// The vendor releasing the package. /// public string Manufacturer { get { return this.manufacturerField; } set { this.manufacturerFieldSet = true; this.manufacturerField = value; } } /// /// The list of platforms supported by the package. This attribute has been deprecated. /// Specify the -arch switch at the candle.exe command line or the InstallerPlatform /// property in a .wixproj MSBuild project. /// public string Platforms { get { return this.platformsField; } set { this.platformsFieldSet = true; this.platformsField = value; } } /// /// The platform supported by the package. Use of this attribute is discouraged; instead, /// specify the -arch switch at the candle.exe command line or the InstallerPlatform /// property in a .wixproj MSBuild project. /// public PlatformType Platform { get { return this.platformField; } set { this.platformFieldSet = true; this.platformField = value; } } /// /// The value of this attribute conveys whether the package should be opened as read-only. /// A database editing tool should not modify a read-only enforced database and should /// issue a warning at attempts to modify a read-only recommended database. /// public YesNoDefaultType ReadOnly { get { return this.readOnlyField; } set { this.readOnlyFieldSet = true; this.readOnlyField = value; } } /// /// Set to 'yes' to have short filenames in the source. /// public YesNoType ShortNames { get { return this.shortNamesField; } set { this.shortNamesFieldSet = true; this.shortNamesField = value; } } /// /// The code page integer value or web name for summary info strings only. See remarks for more information. /// public string SummaryCodepage { get { return this.summaryCodepageField; } set { this.summaryCodepageFieldSet = true; this.summaryCodepageField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a InstallPrivilegesType from a string. /// public static InstallPrivilegesType ParseInstallPrivilegesType(string value) { InstallPrivilegesType parsedValue; SummaryInformation.TryParseInstallPrivilegesType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a InstallPrivilegesType from a string. /// public static bool TryParseInstallPrivilegesType(string value, out InstallPrivilegesType parsedValue) { parsedValue = InstallPrivilegesType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("limited" == value)) { parsedValue = InstallPrivilegesType.limited; } else { if (("elevated" == value)) { parsedValue = InstallPrivilegesType.elevated; } else { parsedValue = InstallPrivilegesType.IllegalValue; return false; } } return true; } /// /// Parses a InstallScopeType from a string. /// public static InstallScopeType ParseInstallScopeType(string value) { InstallScopeType parsedValue; SummaryInformation.TryParseInstallScopeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a InstallScopeType from a string. /// public static bool TryParseInstallScopeType(string value, out InstallScopeType parsedValue) { parsedValue = InstallScopeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("perMachine" == value)) { parsedValue = InstallScopeType.perMachine; } else { if (("perUser" == value)) { parsedValue = InstallScopeType.perUser; } else { parsedValue = InstallScopeType.IllegalValue; return false; } } return true; } /// /// Parses a PlatformType from a string. /// public static PlatformType ParsePlatformType(string value) { PlatformType parsedValue; SummaryInformation.TryParsePlatformType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a PlatformType from a string. /// public static bool TryParsePlatformType(string value, out PlatformType parsedValue) { parsedValue = PlatformType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("x86" == value)) { parsedValue = PlatformType.x86; } else { if (("ia64" == value)) { parsedValue = PlatformType.ia64; } else { if (("x64" == value)) { parsedValue = PlatformType.x64; } else { if (("arm" == value)) { parsedValue = PlatformType.arm; } else { if (("intel" == value)) { parsedValue = PlatformType.intel; } else { if (("intel64" == value)) { parsedValue = PlatformType.intel64; } else { parsedValue = PlatformType.IllegalValue; return false; } } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SummaryInformation", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.adminImageFieldSet) { if ((this.adminImageField == YesNoType.no)) { writer.WriteAttributeString("AdminImage", "no"); } if ((this.adminImageField == YesNoType.yes)) { writer.WriteAttributeString("AdminImage", "yes"); } } if (this.commentsFieldSet) { writer.WriteAttributeString("Comments", this.commentsField); } if (this.compressedFieldSet) { if ((this.compressedField == YesNoType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.installPrivilegesFieldSet) { if ((this.installPrivilegesField == InstallPrivilegesType.limited)) { writer.WriteAttributeString("InstallPrivileges", "limited"); } if ((this.installPrivilegesField == InstallPrivilegesType.elevated)) { writer.WriteAttributeString("InstallPrivileges", "elevated"); } } if (this.installScopeFieldSet) { if ((this.installScopeField == InstallScopeType.perMachine)) { writer.WriteAttributeString("InstallScope", "perMachine"); } if ((this.installScopeField == InstallScopeType.perUser)) { writer.WriteAttributeString("InstallScope", "perUser"); } } if (this.installerVersionFieldSet) { writer.WriteAttributeString("InstallerVersion", this.installerVersionField.ToString(CultureInfo.InvariantCulture)); } if (this.keywordsFieldSet) { writer.WriteAttributeString("Keywords", this.keywordsField); } if (this.languagesFieldSet) { writer.WriteAttributeString("Languages", this.languagesField); } if (this.manufacturerFieldSet) { writer.WriteAttributeString("Manufacturer", this.manufacturerField); } if (this.platformsFieldSet) { writer.WriteAttributeString("Platforms", this.platformsField); } if (this.platformFieldSet) { if ((this.platformField == PlatformType.x86)) { writer.WriteAttributeString("Platform", "x86"); } if ((this.platformField == PlatformType.ia64)) { writer.WriteAttributeString("Platform", "ia64"); } if ((this.platformField == PlatformType.x64)) { writer.WriteAttributeString("Platform", "x64"); } if ((this.platformField == PlatformType.arm)) { writer.WriteAttributeString("Platform", "arm"); } if ((this.platformField == PlatformType.intel)) { writer.WriteAttributeString("Platform", "intel"); } if ((this.platformField == PlatformType.intel64)) { writer.WriteAttributeString("Platform", "intel64"); } } if (this.readOnlyFieldSet) { if ((this.readOnlyField == YesNoDefaultType.@default)) { writer.WriteAttributeString("ReadOnly", "default"); } if ((this.readOnlyField == YesNoDefaultType.no)) { writer.WriteAttributeString("ReadOnly", "no"); } if ((this.readOnlyField == YesNoDefaultType.yes)) { writer.WriteAttributeString("ReadOnly", "yes"); } } if (this.shortNamesFieldSet) { if ((this.shortNamesField == YesNoType.no)) { writer.WriteAttributeString("ShortNames", "no"); } if ((this.shortNamesField == YesNoType.yes)) { writer.WriteAttributeString("ShortNames", "yes"); } } if (this.summaryCodepageFieldSet) { writer.WriteAttributeString("SummaryCodepage", this.summaryCodepageField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("AdminImage" == name)) { this.adminImageField = Enums.ParseYesNoType(value); this.adminImageFieldSet = true; } if (("Comments" == name)) { this.commentsField = value; this.commentsFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoType(value); this.compressedFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("InstallPrivileges" == name)) { this.installPrivilegesField = SummaryInformation.ParseInstallPrivilegesType(value); this.installPrivilegesFieldSet = true; } if (("InstallScope" == name)) { this.installScopeField = SummaryInformation.ParseInstallScopeType(value); this.installScopeFieldSet = true; } if (("InstallerVersion" == name)) { this.installerVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.installerVersionFieldSet = true; } if (("Keywords" == name)) { this.keywordsField = value; this.keywordsFieldSet = true; } if (("Languages" == name)) { this.languagesField = value; this.languagesFieldSet = true; } if (("Manufacturer" == name)) { this.manufacturerField = value; this.manufacturerFieldSet = true; } if (("Platforms" == name)) { this.platformsField = value; this.platformsFieldSet = true; } if (("Platform" == name)) { this.platformField = SummaryInformation.ParsePlatformType(value); this.platformFieldSet = true; } if (("ReadOnly" == name)) { this.readOnlyField = Enums.ParseYesNoDefaultType(value); this.readOnlyFieldSet = true; } if (("ShortNames" == name)) { this.shortNamesField = Enums.ParseYesNoType(value); this.shortNamesFieldSet = true; } if (("SummaryCodepage" == name)) { this.summaryCodepageField = value; this.summaryCodepageFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum InstallPrivilegesType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Set this value to declare that the package does not require elevated privileges to install. /// limited, /// /// Set this value to declare that the package requires elevated privileges to install. /// This is the default value. /// elevated, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum InstallScopeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Set this value to declare that the package is a per-machine installation and requires elevated privileges to install. /// Sets the ALLUSERS property to 1. /// perMachine, /// /// Set this value to declare that the package is a per-user installation and does not require elevated privileges to install. /// Sets the package's InstallPrivileges attribute to "limited." /// perUser, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum PlatformType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Set this value to declare that the package is an x86 package. /// x86, /// /// Set this value to declare that the package is an ia64 package. /// This value requires that the InstallerVersion property be set to 200 or greater. /// ia64, /// /// Set this value to declare that the package is an x64 package. /// This value requires that the InstallerVersion property be set to 200 or greater. /// x64, /// /// Set this value to declare that the package is an arm package. /// This value requires that the InstallerVersion property be set to 500 or greater. /// arm, /// /// This value has been deprecated. Use "x86" instead. /// intel, /// /// This value has been deprecated. Use "ia64" instead. /// intel64, } } /// /// The MsiAssemblyName table specifies the schema for the elements of a strong assembly cache name for a .NET Framework or Win32 assembly. /// Consider using the Assembly attribute on File element to have the toolset populate these entries automatically. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AssemblyName : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Name of the attribute associated with the value specified in the Value column. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Value associated with the name specified in the Name column. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AssemblyName", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Identifies the possible signer certificates used to digitally sign patches. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public PatchCertificates() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DigitalCertificate" == childName)) { childValue = new DigitalCertificate(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchCertificates", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// Digital signatures that identify installation packages in a multi-product transaction. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PackageCertificates : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public PackageCertificates() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DigitalCertificate" == childName)) { childValue = new DigitalCertificate(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PackageCertificates", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// Adds a digital certificate. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DigitalCertificate : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private ISchemaElement parentElement; /// /// Identifier for a certificate file. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The path to the certificate file. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DigitalCertificate", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } } } /// /// Reference to a DigitalCertificate element. This will force the entire referenced Fragment's contents /// to be included in the installer database. This is only used for references when patching. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DigitalCertificateRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DigitalCertificateRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Adds a digital signature. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DigitalSignature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string sourceFileField; private bool sourceFileFieldSet; private ISchemaElement parentElement; public DigitalSignature() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalCertificate))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The path to signature's optional hash file. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DigitalCertificate" == childName)) { childValue = new DigitalCertificate(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DigitalSignature", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } } } /// /// Adds a system file protection update catalog file /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SFPCatalog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string nameField; private bool nameFieldSet; private string dependencyField; private bool dependencyFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private ISchemaElement parentElement; public SFPCatalog() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPCatalog))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SFPFile))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Filename for catalog file when installed. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Used to define dependency outside of the package. /// public string Dependency { get { return this.dependencyField; } set { this.dependencyFieldSet = true; this.dependencyField = value; } } /// /// Path to catalog file in binary. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("SFPCatalog" == childName)) { childValue = new SFPCatalog(); } if (("SFPFile" == childName)) { childValue = new SFPFile(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SFPCatalog", "http://wixtoolset.org/schemas/v4/wxs"); if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.dependencyFieldSet) { writer.WriteAttributeString("Dependency", this.dependencyField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Dependency" == name)) { this.dependencyField = value; this.dependencyFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } } } /// /// Provides a many-to-many mapping from the SFPCatalog table to the File table /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SFPFile : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// Primary Key to File Table. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SFPFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Adds or removes .ini file entries. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IniFile : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ActionType actionField; private bool actionFieldSet; private string directoryField; private bool directoryFieldSet; private string keyField; private bool keyFieldSet; private string nameField; private bool nameFieldSet; private string sectionField; private bool sectionFieldSet; private string shortNameField; private bool shortNameFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Identifier for ini file. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The type of modification to be made. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// Name of a property, the value of which is the full path of the folder containing the .ini file. Can be name of a directory in the Directory table, a property set by the AppSearch table, or any other property representing a full path. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// The localizable .ini file key within the section. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// In prior versions of the WiX toolset, this attribute specified the short name. /// This attribute's value may now be either a short or long name. /// If a short name is specified, the ShortName attribute may not be specified. /// Also, if this value is a long name, the ShortName attribute may be omitted to /// allow WiX to attempt to generate a unique short name. /// However, if this name collides with another file or you wish to manually specify /// the short name, then the ShortName attribute may be specified. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The localizable .ini file section. /// public string Section { get { return this.sectionField; } set { this.sectionFieldSet = true; this.sectionField = value; } } /// /// The short name of the in 8.3 format. /// This attribute should only be set if there is a conflict between generated short names /// or the user wants to manually specify the short name. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// The localizable value to be written or deleted. This attribute must be set if /// the Action attribute's value is "addLine", "addTag", or "createLine". /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; IniFile.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("addLine" == value)) { parsedValue = ActionType.addLine; } else { if (("addTag" == value)) { parsedValue = ActionType.addTag; } else { if (("createLine" == value)) { parsedValue = ActionType.createLine; } else { if (("removeLine" == value)) { parsedValue = ActionType.removeLine; } else { if (("removeTag" == value)) { parsedValue = ActionType.removeTag; } else { parsedValue = ActionType.IllegalValue; return false; } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IniFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.actionFieldSet) { if ((this.actionField == ActionType.addLine)) { writer.WriteAttributeString("Action", "addLine"); } if ((this.actionField == ActionType.addTag)) { writer.WriteAttributeString("Action", "addTag"); } if ((this.actionField == ActionType.createLine)) { writer.WriteAttributeString("Action", "createLine"); } if ((this.actionField == ActionType.removeLine)) { writer.WriteAttributeString("Action", "removeLine"); } if ((this.actionField == ActionType.removeTag)) { writer.WriteAttributeString("Action", "removeTag"); } } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.sectionFieldSet) { writer.WriteAttributeString("Section", this.sectionField); } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Action" == name)) { this.actionField = IniFile.ParseActionType(value); this.actionFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Section" == name)) { this.sectionField = value; this.sectionFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Creates or updates an .ini entry. /// addLine, /// /// Creates a new entry or appends a new comma-separated value to an existing entry. /// addTag, /// /// Creates an .ini entry only if the entry does no already exist. /// createLine, /// /// Removes an .ini entry. /// removeLine, /// /// Removes a tag from an .ini entry. /// removeTag, } } /// /// ODBCDataSource for a Component /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ODBCDataSource : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string driverNameField; private bool driverNameFieldSet; private RegistrationType registrationField; private bool registrationFieldSet; private YesNoType keyPathField; private bool keyPathFieldSet; private ISchemaElement parentElement; public ODBCDataSource() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier of the data source. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Name for the data source. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Required if not found as child of ODBCDriver element /// public string DriverName { get { return this.driverNameField; } set { this.driverNameFieldSet = true; this.driverNameField = value; } } /// /// Scope for which the data source should be registered. /// public RegistrationType Registration { get { return this.registrationField; } set { this.registrationFieldSet = true; this.registrationField = value; } } /// /// Set 'yes' to force this file to be key path for parent Component /// public YesNoType KeyPath { get { return this.keyPathField; } set { this.keyPathFieldSet = true; this.keyPathField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Property" == childName)) { childValue = new Property(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a RegistrationType from a string. /// public static RegistrationType ParseRegistrationType(string value) { RegistrationType parsedValue; ODBCDataSource.TryParseRegistrationType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a RegistrationType from a string. /// public static bool TryParseRegistrationType(string value, out RegistrationType parsedValue) { parsedValue = RegistrationType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("machine" == value)) { parsedValue = RegistrationType.machine; } else { if (("user" == value)) { parsedValue = RegistrationType.user; } else { parsedValue = RegistrationType.IllegalValue; return false; } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ODBCDataSource", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.driverNameFieldSet) { writer.WriteAttributeString("DriverName", this.driverNameField); } if (this.registrationFieldSet) { if ((this.registrationField == RegistrationType.machine)) { writer.WriteAttributeString("Registration", "machine"); } if ((this.registrationField == RegistrationType.user)) { writer.WriteAttributeString("Registration", "user"); } } if (this.keyPathFieldSet) { if ((this.keyPathField == YesNoType.no)) { writer.WriteAttributeString("KeyPath", "no"); } if ((this.keyPathField == YesNoType.yes)) { writer.WriteAttributeString("KeyPath", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DriverName" == name)) { this.driverNameField = value; this.driverNameFieldSet = true; } if (("Registration" == name)) { this.registrationField = ODBCDataSource.ParseRegistrationType(value); this.registrationFieldSet = true; } if (("KeyPath" == name)) { this.keyPathField = Enums.ParseYesNoType(value); this.keyPathFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum RegistrationType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Data source is registered per machine. /// machine, /// /// Data source is registered per user. /// user, } } /// /// ODBCDriver for a Component /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ODBCDriver : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string fileField; private bool fileFieldSet; private string setupFileField; private bool setupFileFieldSet; private ISchemaElement parentElement; public ODBCDriver() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ODBCDataSource))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for the driver. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Name for the driver. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Required if not found as child of File element /// public string File { get { return this.fileField; } set { this.fileFieldSet = true; this.fileField = value; } } /// /// Required if not found as child of File element or different from File attribute above /// public string SetupFile { get { return this.setupFileField; } set { this.setupFileFieldSet = true; this.setupFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Property" == childName)) { childValue = new Property(); } if (("ODBCDataSource" == childName)) { childValue = new ODBCDataSource(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ODBCDriver", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.fileFieldSet) { writer.WriteAttributeString("File", this.fileField); } if (this.setupFileFieldSet) { writer.WriteAttributeString("SetupFile", this.setupFileField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("File" == name)) { this.fileField = value; this.fileFieldSet = true; } if (("SetupFile" == name)) { this.setupFileField = value; this.setupFileFieldSet = true; } } } /// /// ODBCTranslator for a Component /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ODBCTranslator : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string fileField; private bool fileFieldSet; private string setupFileField; private bool setupFileFieldSet; private ISchemaElement parentElement; /// /// Identifier for the translator. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Name for the translator. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Required if not found as child of File element /// public string File { get { return this.fileField; } set { this.fileFieldSet = true; this.fileField = value; } } /// /// Required if not found as child of File element or different from File attribute above /// public string SetupFile { get { return this.setupFileField; } set { this.setupFileFieldSet = true; this.setupFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ODBCTranslator", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.fileFieldSet) { writer.WriteAttributeString("File", this.fileField); } if (this.setupFileFieldSet) { writer.WriteAttributeString("SetupFile", this.setupFileField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("File" == name)) { this.fileField = value; this.fileFieldSet = true; } if (("SetupFile" == name)) { this.setupFileField = value; this.setupFileFieldSet = true; } } } /// /// Searches for file and assigns to fullpath value of parent Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FileSearch : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string shortNameField; private bool shortNameFieldSet; private int minSizeField; private bool minSizeFieldSet; private int maxSizeField; private bool maxSizeFieldSet; private string minVersionField; private bool minVersionFieldSet; private string maxVersionField; private bool maxVersionFieldSet; private DateTime minDateField; private bool minDateFieldSet; private DateTime maxDateField; private bool maxDateFieldSet; private string languagesField; private bool languagesFieldSet; private ISchemaElement parentElement; /// /// Unique identifier for the file search and external key into the Signature table. If this attribute value is not set then the parent element's @Id attribute is used. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// In prior versions of the WiX toolset, this attribute specified the short file name. /// This attribute's value may now be either a short or long file name. /// If a short file name is specified, the ShortName attribute may not be specified. /// If you wish to manually specify the short file name, then the ShortName /// attribute may be specified. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The short file name of the file in 8.3 format. /// There is a Windows Installer bug which prevents the FileSearch functionality from working /// if both a short and long file name are specified. Since the Name attribute allows either /// a short or long name to be specified, it is the only attribute related to file names which /// should be specified. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// The minimum size of the file. /// public int MinSize { get { return this.minSizeField; } set { this.minSizeFieldSet = true; this.minSizeField = value; } } /// /// The maximum size of the file. /// public int MaxSize { get { return this.maxSizeField; } set { this.maxSizeFieldSet = true; this.maxSizeField = value; } } /// /// The minimum version of the file. /// public string MinVersion { get { return this.minVersionField; } set { this.minVersionFieldSet = true; this.minVersionField = value; } } /// /// The maximum version of the file. /// public string MaxVersion { get { return this.maxVersionField; } set { this.maxVersionFieldSet = true; this.maxVersionField = value; } } /// /// The minimum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. /// public DateTime MinDate { get { return this.minDateField; } set { this.minDateFieldSet = true; this.minDateField = value; } } /// /// The maximum modification date and time of the file. Formatted as YYYY-MM-DDTHH:mm:ss, where YYYY is the year, MM is month, DD is day, 'T' is literal, HH is hour, mm is minute and ss is second. /// public DateTime MaxDate { get { return this.maxDateField; } set { this.maxDateFieldSet = true; this.maxDateField = value; } } /// /// The languages supported by the file. /// public string Languages { get { return this.languagesField; } set { this.languagesFieldSet = true; this.languagesField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FileSearch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.minSizeFieldSet) { writer.WriteAttributeString("MinSize", this.minSizeField.ToString(CultureInfo.InvariantCulture)); } if (this.maxSizeFieldSet) { writer.WriteAttributeString("MaxSize", this.maxSizeField.ToString(CultureInfo.InvariantCulture)); } if (this.minVersionFieldSet) { writer.WriteAttributeString("MinVersion", this.minVersionField); } if (this.maxVersionFieldSet) { writer.WriteAttributeString("MaxVersion", this.maxVersionField); } if (this.minDateFieldSet) { writer.WriteAttributeString("MinDate", this.minDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); } if (this.maxDateFieldSet) { writer.WriteAttributeString("MaxDate", this.maxDateField.ToString("yyyy-MM-ddTHH:mm:ss", CultureInfo.InvariantCulture.DateTimeFormat)); } if (this.languagesFieldSet) { writer.WriteAttributeString("Languages", this.languagesField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("MinSize" == name)) { this.minSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.minSizeFieldSet = true; } if (("MaxSize" == name)) { this.maxSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.maxSizeFieldSet = true; } if (("MinVersion" == name)) { this.minVersionField = value; this.minVersionFieldSet = true; } if (("MaxVersion" == name)) { this.maxVersionField = value; this.maxVersionFieldSet = true; } if (("MinDate" == name)) { this.minDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); this.minDateFieldSet = true; } if (("MaxDate" == name)) { this.maxDateField = Convert.ToDateTime(value, CultureInfo.InvariantCulture); this.maxDateFieldSet = true; } if (("Languages" == name)) { this.languagesField = value; this.languagesFieldSet = true; } } } /// /// References an existing FileSearch element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FileSearchRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// Specify the Id to the FileSearch to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FileSearchRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Searches for directory and assigns to value of parent Property. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DirectorySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string pathField; private bool pathFieldSet; private int depthField; private bool depthFieldSet; private YesNoType assignToPropertyField; private bool assignToPropertyFieldSet; private ISchemaElement parentElement; public DirectorySearch() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for the directory search. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Path on the user's system. Either absolute, or relative to containing directories. /// public string Path { get { return this.pathField; } set { this.pathFieldSet = true; this.pathField = value; } } /// /// Depth below the path that the installer searches for the file or directory specified by the search. See remarks for more information. /// public int Depth { get { return this.depthField; } set { this.depthFieldSet = true; this.depthField = value; } } /// /// Set the value of the outer Property to the result of this search. See remarks for more information. /// public YesNoType AssignToProperty { get { return this.assignToPropertyField; } set { this.assignToPropertyFieldSet = true; this.assignToPropertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if (("FileSearch" == childName)) { childValue = new FileSearch(); } if (("FileSearchRef" == childName)) { childValue = new FileSearchRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DirectorySearch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.pathFieldSet) { writer.WriteAttributeString("Path", this.pathField); } if (this.depthFieldSet) { writer.WriteAttributeString("Depth", this.depthField.ToString(CultureInfo.InvariantCulture)); } if (this.assignToPropertyFieldSet) { if ((this.assignToPropertyField == YesNoType.no)) { writer.WriteAttributeString("AssignToProperty", "no"); } if ((this.assignToPropertyField == YesNoType.yes)) { writer.WriteAttributeString("AssignToProperty", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Path" == name)) { this.pathField = value; this.pathFieldSet = true; } if (("Depth" == name)) { this.depthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.depthFieldSet = true; } if (("AssignToProperty" == name)) { this.assignToPropertyField = Enums.ParseYesNoType(value); this.assignToPropertyFieldSet = true; } } } /// /// References an existing DirectorySearch element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DirectorySearchRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string parentField; private bool parentFieldSet; private string pathField; private bool pathFieldSet; private ISchemaElement parentElement; public DirectorySearchRef() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Id of the search being referred to. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This attribute is the signature of the parent directory of the file or directory in the Signature_ column. If this field is null, and the Path column does not expand to a full path, then all the fixed drives of the user's system are searched by using the Path. This field is a key into one of the following tables: the RegLocator, the IniLocator, the CompLocator, or the DrLocator tables. /// public string Parent { get { return this.parentField; } set { this.parentFieldSet = true; this.parentField = value; } } /// /// Path on the user's system. Either absolute, or relative to containing directories. /// public string Path { get { return this.pathField; } set { this.pathFieldSet = true; this.pathField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if (("FileSearch" == childName)) { childValue = new FileSearch(); } if (("FileSearchRef" == childName)) { childValue = new FileSearchRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DirectorySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.parentFieldSet) { writer.WriteAttributeString("Parent", this.parentField); } if (this.pathFieldSet) { writer.WriteAttributeString("Path", this.pathField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Parent" == name)) { this.parentField = value; this.parentFieldSet = true; } if (("Path" == name)) { this.pathField = value; this.pathFieldSet = true; } } } /// /// Searches for file or directory and assigns to value of parent Property. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComponentSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string guidField; private bool guidFieldSet; private TypeType typeField; private bool typeFieldSet; private ISchemaElement parentElement; public ComponentSearch() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The component ID of the component whose key path is to be used for the search. /// public string Guid { get { return this.guidField; } set { this.guidFieldSet = true; this.guidField = value; } } /// /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if (("FileSearch" == childName)) { childValue = new FileSearch(); } if (("FileSearchRef" == childName)) { childValue = new FileSearchRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; ComponentSearch.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("directory" == value)) { parsedValue = TypeType.directory; } else { if (("file" == value)) { parsedValue = TypeType.file; } else { parsedValue = TypeType.IllegalValue; return false; } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComponentSearch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.guidFieldSet) { writer.WriteAttributeString("Guid", this.guidField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.directory)) { writer.WriteAttributeString("Type", "directory"); } if ((this.typeField == TypeType.file)) { writer.WriteAttributeString("Type", "file"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Guid" == name)) { this.guidField = value; this.guidFieldSet = true; } if (("Type" == name)) { this.typeField = ComponentSearch.ParseTypeType(value); this.typeFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The key path of the component is a directory. /// directory, /// /// The key path of the component is a file. This is the default value. /// file, } } /// /// Searches for file, directory or registry key and assigns to value of parent Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IniFileSearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private int fieldField; private bool fieldFieldSet; private string keyField; private bool keyFieldSet; private string nameField; private bool nameFieldSet; private string sectionField; private bool sectionFieldSet; private string shortNameField; private bool shortNameFieldSet; private TypeType typeField; private bool typeFieldSet; private ISchemaElement parentElement; public IniFileSearch() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// External key into the Signature table. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The field in the .ini line. If field is Null or 0, the entire line is read. /// public int Field { get { return this.fieldField; } set { this.fieldFieldSet = true; this.fieldField = value; } } /// /// The key value within the section. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// In prior versions of the WiX toolset, this attribute specified the short name. /// This attribute's value may now be either a short or long name. /// If a short name is specified, the ShortName attribute may not be specified. /// Also, if this value is a long name, the ShortName attribute may be omitted to /// allow WiX to attempt to generate a unique short name. /// However, if you wish to manually specify the short name, then the ShortName /// attribute may be specified. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The localizable .ini file section. /// public string Section { get { return this.sectionField; } set { this.sectionFieldSet = true; this.sectionField = value; } } /// /// The short name of the file in 8.3 format. /// This attribute should only be set if the user wants to manually specify the short name. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if (("FileSearch" == childName)) { childValue = new FileSearch(); } if (("FileSearchRef" == childName)) { childValue = new FileSearchRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; IniFileSearch.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("directory" == value)) { parsedValue = TypeType.directory; } else { if (("file" == value)) { parsedValue = TypeType.file; } else { if (("raw" == value)) { parsedValue = TypeType.raw; } else { parsedValue = TypeType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IniFileSearch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.fieldFieldSet) { writer.WriteAttributeString("Field", this.fieldField.ToString(CultureInfo.InvariantCulture)); } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.sectionFieldSet) { writer.WriteAttributeString("Section", this.sectionField); } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.directory)) { writer.WriteAttributeString("Type", "directory"); } if ((this.typeField == TypeType.file)) { writer.WriteAttributeString("Type", "file"); } if ((this.typeField == TypeType.raw)) { writer.WriteAttributeString("Type", "raw"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Field" == name)) { this.fieldField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.fieldFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Section" == name)) { this.sectionField = value; this.sectionFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("Type" == name)) { this.typeField = IniFileSearch.ParseTypeType(value); this.typeFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// A directory location. /// directory, /// /// A file location. This is the default value. /// file, /// /// A raw .ini value. /// raw, } } /// /// Searches for file, directory or registry key and assigns to value of parent Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegistrySearch : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private RootType rootField; private bool rootFieldSet; private string keyField; private bool keyFieldSet; private string nameField; private bool nameFieldSet; private TypeType typeField; private bool typeFieldSet; private YesNoType win64Field; private bool win64FieldSet; private ISchemaElement parentElement; public RegistrySearch() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileSearchRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Signature to be used for the file, directory or registry key being searched for. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Root key for the registry value. /// public RootType Root { get { return this.rootField; } set { this.rootFieldSet = true; this.rootField = value; } } /// /// Key for the registry value. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// Registry value name. If this value is null, then the value from the key's unnamed or default value, if any, is retrieved. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The value must be 'file' if the child is a FileSearch element, and must be 'directory' if child is a DirectorySearch element. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// Instructs the search to look in the 64-bit registry when the value is 'yes'. When the value is 'no', the search looks in the 32-bit registry. /// The default value is based on the platform set by the -arch switch to candle.exe /// or the InstallerPlatform property in a .wixproj MSBuild project: /// For x86 and ARM, the default value is 'no'. /// For x64 and IA64, the default value is 'yes'. /// public YesNoType Win64 { get { return this.win64Field; } set { this.win64FieldSet = true; this.win64Field = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if (("FileSearch" == childName)) { childValue = new FileSearch(); } if (("FileSearchRef" == childName)) { childValue = new FileSearchRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a RootType from a string. /// public static RootType ParseRootType(string value) { RootType parsedValue; RegistrySearch.TryParseRootType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a RootType from a string. /// public static bool TryParseRootType(string value, out RootType parsedValue) { parsedValue = RootType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("HKCR" == value)) { parsedValue = RootType.HKCR; } else { if (("HKCU" == value)) { parsedValue = RootType.HKCU; } else { if (("HKLM" == value)) { parsedValue = RootType.HKLM; } else { if (("HKU" == value)) { parsedValue = RootType.HKU; } else { parsedValue = RootType.IllegalValue; return false; } } } } return true; } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; RegistrySearch.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("directory" == value)) { parsedValue = TypeType.directory; } else { if (("file" == value)) { parsedValue = TypeType.file; } else { if (("raw" == value)) { parsedValue = TypeType.raw; } else { parsedValue = TypeType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegistrySearch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.rootFieldSet) { if ((this.rootField == RootType.HKCR)) { writer.WriteAttributeString("Root", "HKCR"); } if ((this.rootField == RootType.HKCU)) { writer.WriteAttributeString("Root", "HKCU"); } if ((this.rootField == RootType.HKLM)) { writer.WriteAttributeString("Root", "HKLM"); } if ((this.rootField == RootType.HKU)) { writer.WriteAttributeString("Root", "HKU"); } } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.directory)) { writer.WriteAttributeString("Type", "directory"); } if ((this.typeField == TypeType.file)) { writer.WriteAttributeString("Type", "file"); } if ((this.typeField == TypeType.raw)) { writer.WriteAttributeString("Type", "raw"); } } if (this.win64FieldSet) { if ((this.win64Field == YesNoType.no)) { writer.WriteAttributeString("Win64", "no"); } if ((this.win64Field == YesNoType.yes)) { writer.WriteAttributeString("Win64", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Root" == name)) { this.rootField = RegistrySearch.ParseRootType(value); this.rootFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Type" == name)) { this.typeField = RegistrySearch.ParseTypeType(value); this.typeFieldSet = true; } if (("Win64" == name)) { this.win64Field = Enums.ParseYesNoType(value); this.win64FieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum RootType { IllegalValue = int.MaxValue, NotSet = -1, /// /// HKEY_CLASSES_ROOT /// HKCR, /// /// HKEY_CURRENT_USER /// HKCU, /// /// HKEY_LOCAL_MACHINE /// HKLM, /// /// HKEY_USERS /// HKU, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The registry value contains the path to a directory. /// directory, /// /// The registry value contains the path to a file. To return the full file path you must add a FileSearch element as a child of this element; otherwise, the parent directory of the file path is returned. /// file, /// /// Sets the raw value from the registry value. Please note that this value will contain a prefix as follows: /// raw, } } /// /// References an existing RegistrySearch element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegistrySearchRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// Specify the Id of the RegistrySearch to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegistrySearchRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Sets the parent of a nested DirectorySearch element to CCP_DRIVE. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComplianceDrive : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public ComplianceDrive() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DirectorySearchRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComplianceDrive", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// Adds a row to the CCPSearch table. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComplianceCheck : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public ComplianceCheck() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); childCollection0.AddCollection(childCollection1); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ComplianceDrive" == childName)) { childValue = new ComplianceDrive(); } if (("ComponentSearch" == childName)) { childValue = new ComponentSearch(); } if (("RegistrySearch" == childName)) { childValue = new RegistrySearch(); } if (("IniFileSearch" == childName)) { childValue = new IniFileSearch(); } if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComplianceCheck", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// Property value for a Package or Module. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Property : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string valueField; private bool valueFieldSet; private YesNoType complianceCheckField; private bool complianceCheckFieldSet; private YesNoType adminField; private bool adminFieldSet; private YesNoType secureField; private bool secureFieldSet; private YesNoType hiddenField; private bool hiddenFieldSet; private YesNoType suppressModularizationField; private bool suppressModularizationFieldSet; private ISchemaElement parentElement; public Property() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComplianceDrive))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ComponentSearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(RegistrySearchRef))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(IniFileSearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearch))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(DirectorySearchRef))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(ProductSearch))); childCollection0.AddCollection(childCollection1); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for Property. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Sets a default value for the property. The value will be overwritten if the Property is used for a search. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. /// public YesNoType ComplianceCheck { get { return this.complianceCheckField; } set { this.complianceCheckFieldSet = true; this.complianceCheckField = value; } } /// /// Denotes that the Property is saved during /// public YesNoType Admin { get { return this.adminField; } set { this.adminFieldSet = true; this.adminField = value; } } /// /// Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the /// public YesNoType Secure { get { return this.secureField; } set { this.secureFieldSet = true; this.secureField = value; } } /// /// Denotes that the Property is not logged during installation. See the /// public YesNoType Hidden { get { return this.hiddenField; } set { this.hiddenFieldSet = true; this.hiddenField = value; } } /// /// Use to suppress modularization of this property identifier in merge modules. /// Using this functionality is strongly discouraged; it should only be /// necessary as a workaround of last resort in rare scenarios. /// public YesNoType SuppressModularization { get { return this.suppressModularizationField; } set { this.suppressModularizationFieldSet = true; this.suppressModularizationField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ComplianceDrive" == childName)) { childValue = new ComplianceDrive(); } if (("ComponentSearch" == childName)) { childValue = new ComponentSearch(); } if (("RegistrySearch" == childName)) { childValue = new RegistrySearch(); } if (("RegistrySearchRef" == childName)) { childValue = new RegistrySearchRef(); } if (("IniFileSearch" == childName)) { childValue = new IniFileSearch(); } if (("DirectorySearch" == childName)) { childValue = new DirectorySearch(); } if (("DirectorySearchRef" == childName)) { childValue = new DirectorySearchRef(); } if (("ProductSearch" == childName)) { childValue = new ProductSearch(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Property", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.complianceCheckFieldSet) { if ((this.complianceCheckField == YesNoType.no)) { writer.WriteAttributeString("ComplianceCheck", "no"); } if ((this.complianceCheckField == YesNoType.yes)) { writer.WriteAttributeString("ComplianceCheck", "yes"); } } if (this.adminFieldSet) { if ((this.adminField == YesNoType.no)) { writer.WriteAttributeString("Admin", "no"); } if ((this.adminField == YesNoType.yes)) { writer.WriteAttributeString("Admin", "yes"); } } if (this.secureFieldSet) { if ((this.secureField == YesNoType.no)) { writer.WriteAttributeString("Secure", "no"); } if ((this.secureField == YesNoType.yes)) { writer.WriteAttributeString("Secure", "yes"); } } if (this.hiddenFieldSet) { if ((this.hiddenField == YesNoType.no)) { writer.WriteAttributeString("Hidden", "no"); } if ((this.hiddenField == YesNoType.yes)) { writer.WriteAttributeString("Hidden", "yes"); } } if (this.suppressModularizationFieldSet) { if ((this.suppressModularizationField == YesNoType.no)) { writer.WriteAttributeString("SuppressModularization", "no"); } if ((this.suppressModularizationField == YesNoType.yes)) { writer.WriteAttributeString("SuppressModularization", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("ComplianceCheck" == name)) { this.complianceCheckField = Enums.ParseYesNoType(value); this.complianceCheckFieldSet = true; } if (("Admin" == name)) { this.adminField = Enums.ParseYesNoType(value); this.adminFieldSet = true; } if (("Secure" == name)) { this.secureField = Enums.ParseYesNoType(value); this.secureFieldSet = true; } if (("Hidden" == name)) { this.hiddenField = Enums.ParseYesNoType(value); this.hiddenFieldSet = true; } if (("SuppressModularization" == name)) { this.suppressModularizationField = Enums.ParseYesNoType(value); this.suppressModularizationFieldSet = true; } } } /// /// Reference to a Property value. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PropertyRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// Identifier of Property to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PropertyRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Shortcut, default target is parent File, CreateFolder, or Component's Directory /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Shortcut : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string directoryField; private bool directoryFieldSet; private string nameField; private bool nameFieldSet; private string shortNameField; private bool shortNameFieldSet; private string targetField; private bool targetFieldSet; private string descriptionField; private bool descriptionFieldSet; private string argumentsField; private bool argumentsFieldSet; private int hotkeyField; private bool hotkeyFieldSet; private string iconField; private bool iconFieldSet; private int iconIndexField; private bool iconIndexFieldSet; private ShowType showField; private bool showFieldSet; private string workingDirectoryField; private bool workingDirectoryFieldSet; private YesNoType advertiseField; private bool advertiseFieldSet; private string displayResourceDllField; private bool displayResourceDllFieldSet; private int displayResourceIdField; private bool displayResourceIdFieldSet; private string descriptionResourceDllField; private bool descriptionResourceDllFieldSet; private int descriptionResourceIdField; private bool descriptionResourceIdFieldSet; private ISchemaElement parentElement; public Shortcut() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Icon))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ShortcutProperty))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for the shortcut. This value will serve as the primary key for the row. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Identifier reference to Directory element where shortcut is to be created. When nested under a Component element, this attribute's value will default to the parent directory. Otherwise, this attribute is required. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// In prior versions of the WiX toolset, this attribute specified the short name. /// This attribute's value may now be either a short or long name. /// If a short name is specified, the ShortName attribute may not be specified. /// Also, if this value is a long name, the ShortName attribute may be omitted to /// allow WiX to attempt to generate a unique short name. /// However, if this name collides with another shortcut or you wish to manually specify /// the short name, then the ShortName attribute may be specified. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The short name of the shortcut in 8.3 format. /// This attribute should only be set if there is a conflict between generated short names /// or the user wants to manually specify the short name. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// This attribute can only be set if this Shortcut element is nested under a Component element. /// When nested under a Component element, this attribute's value will default to the parent directory. /// This attribute's value is the target for a non-advertised shortcut. /// This attribute is not valid for advertised shortcuts. /// If you specify this value, its value should be a property identifier enclosed by square brackets ([ ]), that is expanded into the file or a folder pointed to by the shortcut. /// public string Target { get { return this.targetField; } set { this.targetFieldSet = true; this.targetField = value; } } /// /// The localizable description for the shortcut. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// The command-line arguments for the shortcut. Note that the resolution of properties /// in the Arguments field is limited. A property formatted as [Property] in this field can only be resolved if the /// property already has the intended value when the component owning the shortcut is installed. For example, for the /// argument "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and /// the component that owns the shortcut. /// public string Arguments { get { return this.argumentsField; } set { this.argumentsFieldSet = true; this.argumentsField = value; } } /// /// The hotkey for the shortcut. The low-order byte contains the virtual-key code for /// the key, and the high-order byte contains modifier flags. This must be a non-negative number. Authors of /// installation packages are generally recommend not to set this option, because this can add duplicate hotkeys to a /// users desktop. In addition, the practice of assigning hotkeys to shortcuts can be problematic for users using hotkeys /// for accessibility. /// public int Hotkey { get { return this.hotkeyField; } set { this.hotkeyFieldSet = true; this.hotkeyField = value; } } /// /// Identifier reference to Icon element. The Icon identifier should have the same extension /// as the file that it points at. For example, a shortcut to an executable (e.g. "my.exe") should reference an Icon with identifier /// like "MyIcon.exe" /// public string Icon { get { return this.iconField; } set { this.iconFieldSet = true; this.iconField = value; } } /// /// Identifier reference to Icon element. /// public int IconIndex { get { return this.iconIndexField; } set { this.iconIndexFieldSet = true; this.iconIndexField = value; } } public ShowType Show { get { return this.showField; } set { this.showFieldSet = true; this.showField = value; } } /// /// Directory identifier (or Property identifier that resolves to a directory) that resolves /// to the path of the working directory for the shortcut. /// public string WorkingDirectory { get { return this.workingDirectoryField; } set { this.workingDirectoryFieldSet = true; this.workingDirectoryField = value; } } /// /// Specifies if the shortcut should be advertised or not. Note that advertised shortcuts /// always point at a particular application, identified by a ProductCode, and should not be shared between applications. /// Advertised shortcuts only work for the most recently installed application, and are removed when that application is /// removed. The default value is 'no'. /// public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } /// /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally /// authored using [#filekey] form. When this attribute is specified, the DisplayResourceId attribute must also /// be provided. /// /// This attribute is only used on Windows Vista and above. If this attribute is not populated and the install /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and /// the install is running on Vista and above, the value in the Name attribute is ignored. /// public string DisplayResourceDll { get { return this.displayResourceDllField; } set { this.displayResourceDllFieldSet = true; this.displayResourceDllField = value; } } /// /// The display name index for the shortcut. This must be a non-negative number. When this attribute is specified, the /// DisplayResourceDll attribute must also be provided. /// /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install /// is running on Vista and above, the value in the Name attribute is used. If this attribute is specified and /// the install is running on Vista and above, the value in the Name attribute is ignored. /// public int DisplayResourceId { get { return this.displayResourceIdField; } set { this.displayResourceIdFieldSet = true; this.displayResourceIdField = value; } } /// /// The Formatted string providing the full path to the language neutral file containing the MUI Manifest. Generally /// authored using [#filekey] form. When this attribute is specified, the DescriptionResourceId attribute must also /// be provided. /// /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install /// is running on Vista and above, the value in the Name attribute is used. If this attribute is provided and /// the install is running on Vista and above, the value in the Name attribute is ignored. /// public string DescriptionResourceDll { get { return this.descriptionResourceDllField; } set { this.descriptionResourceDllFieldSet = true; this.descriptionResourceDllField = value; } } /// /// The description name index for the shortcut. This must be a non-negative number. When this attribute is specified, /// the DescriptionResourceDll attribute must also be populated. /// /// This attribute is only used on Windows Vista and above. If this attribute is not specified and the install /// is running on Vista and above, the value in the Name attribute is used. If this attribute is populated and the /// install is running on Vista and above, the value in the Name attribute is ignored. /// public int DescriptionResourceId { get { return this.descriptionResourceIdField; } set { this.descriptionResourceIdFieldSet = true; this.descriptionResourceIdField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Icon" == childName)) { childValue = new Icon(); } if (("ShortcutProperty" == childName)) { childValue = new ShortcutProperty(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a ShowType from a string. /// public static ShowType ParseShowType(string value) { ShowType parsedValue; Shortcut.TryParseShowType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ShowType from a string. /// public static bool TryParseShowType(string value, out ShowType parsedValue) { parsedValue = ShowType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("normal" == value)) { parsedValue = ShowType.normal; } else { if (("minimized" == value)) { parsedValue = ShowType.minimized; } else { if (("maximized" == value)) { parsedValue = ShowType.maximized; } else { parsedValue = ShowType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Shortcut", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.targetFieldSet) { writer.WriteAttributeString("Target", this.targetField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.argumentsFieldSet) { writer.WriteAttributeString("Arguments", this.argumentsField); } if (this.hotkeyFieldSet) { writer.WriteAttributeString("Hotkey", this.hotkeyField.ToString(CultureInfo.InvariantCulture)); } if (this.iconFieldSet) { writer.WriteAttributeString("Icon", this.iconField); } if (this.iconIndexFieldSet) { writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); } if (this.showFieldSet) { if ((this.showField == ShowType.normal)) { writer.WriteAttributeString("Show", "normal"); } if ((this.showField == ShowType.minimized)) { writer.WriteAttributeString("Show", "minimized"); } if ((this.showField == ShowType.maximized)) { writer.WriteAttributeString("Show", "maximized"); } } if (this.workingDirectoryFieldSet) { writer.WriteAttributeString("WorkingDirectory", this.workingDirectoryField); } if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } if (this.displayResourceDllFieldSet) { writer.WriteAttributeString("DisplayResourceDll", this.displayResourceDllField); } if (this.displayResourceIdFieldSet) { writer.WriteAttributeString("DisplayResourceId", this.displayResourceIdField.ToString(CultureInfo.InvariantCulture)); } if (this.descriptionResourceDllFieldSet) { writer.WriteAttributeString("DescriptionResourceDll", this.descriptionResourceDllField); } if (this.descriptionResourceIdFieldSet) { writer.WriteAttributeString("DescriptionResourceId", this.descriptionResourceIdField.ToString(CultureInfo.InvariantCulture)); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("Target" == name)) { this.targetField = value; this.targetFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("Arguments" == name)) { this.argumentsField = value; this.argumentsFieldSet = true; } if (("Hotkey" == name)) { this.hotkeyField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.hotkeyFieldSet = true; } if (("Icon" == name)) { this.iconField = value; this.iconFieldSet = true; } if (("IconIndex" == name)) { this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.iconIndexFieldSet = true; } if (("Show" == name)) { this.showField = Shortcut.ParseShowType(value); this.showFieldSet = true; } if (("WorkingDirectory" == name)) { this.workingDirectoryField = value; this.workingDirectoryFieldSet = true; } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } if (("DisplayResourceDll" == name)) { this.displayResourceDllField = value; this.displayResourceDllFieldSet = true; } if (("DisplayResourceId" == name)) { this.displayResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.displayResourceIdFieldSet = true; } if (("DescriptionResourceDll" == name)) { this.descriptionResourceDllField = value; this.descriptionResourceDllFieldSet = true; } if (("DescriptionResourceId" == name)) { this.descriptionResourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.descriptionResourceIdFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ShowType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The shortcut target will be displayed using the SW_SHOWNORMAL attribute. /// normal, /// /// The shortcut target will be displayed using the SW_SHOWMINNOACTIVE attribute. /// minimized, /// /// The shortcut target will be displayed using the SW_SHOWMAXIMIZED attribute. /// maximized, } } /// /// Property values for a shortcut. This element's functionality is available starting with MSI 5.0. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ShortcutProperty : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string keyField; private bool keyFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Unique identifier for MsiShortcutProperty table. If omitted, a stable identifier will be generated from the parent shortcut identifier and Key value. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// A formatted string identifying the property to be set. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// A formatted string supplying the value of the property. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ShortcutProperty", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used /// if the Action attribute's value is remove or removeKeyOnInstall. This element has no Id attribute. /// The table and key are taken from the parent element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Permission : ISchemaElement, ISetAttributes { private string domainField; private bool domainFieldSet; private string userField; private bool userFieldSet; private YesNoType readField; private bool readFieldSet; private YesNoType deleteField; private bool deleteFieldSet; private YesNoType readPermissionField; private bool readPermissionFieldSet; private YesNoType changePermissionField; private bool changePermissionFieldSet; private YesNoType takeOwnershipField; private bool takeOwnershipFieldSet; private YesNoType specificRightsAllField; private bool specificRightsAllFieldSet; private YesNoType readAttributesField; private bool readAttributesFieldSet; private YesNoType writeAttributesField; private bool writeAttributesFieldSet; private YesNoType readExtendedAttributesField; private bool readExtendedAttributesFieldSet; private YesNoType writeExtendedAttributesField; private bool writeExtendedAttributesFieldSet; private YesNoType synchronizeField; private bool synchronizeFieldSet; private YesNoType createFileField; private bool createFileFieldSet; private YesNoType createChildField; private bool createChildFieldSet; private YesNoType deleteChildField; private bool deleteChildFieldSet; private YesNoType traverseField; private bool traverseFieldSet; private YesNoType appendField; private bool appendFieldSet; private YesNoType executeField; private bool executeFieldSet; private YesNoType fileAllRightsField; private bool fileAllRightsFieldSet; private YesNoType writeField; private bool writeFieldSet; private YesNoType createSubkeysField; private bool createSubkeysFieldSet; private YesNoType enumerateSubkeysField; private bool enumerateSubkeysFieldSet; private YesNoType notifyField; private bool notifyFieldSet; private YesNoType createLinkField; private bool createLinkFieldSet; private YesNoType genericAllField; private bool genericAllFieldSet; private YesNoType genericExecuteField; private bool genericExecuteFieldSet; private YesNoType genericWriteField; private bool genericWriteFieldSet; private YesNoType genericReadField; private bool genericReadFieldSet; private ISchemaElement parentElement; public string Domain { get { return this.domainField; } set { this.domainFieldSet = true; this.domainField = value; } } public string User { get { return this.userField; } set { this.userFieldSet = true; this.userField = value; } } public YesNoType Read { get { return this.readField; } set { this.readFieldSet = true; this.readField = value; } } public YesNoType Delete { get { return this.deleteField; } set { this.deleteFieldSet = true; this.deleteField = value; } } public YesNoType ReadPermission { get { return this.readPermissionField; } set { this.readPermissionFieldSet = true; this.readPermissionField = value; } } public YesNoType ChangePermission { get { return this.changePermissionField; } set { this.changePermissionFieldSet = true; this.changePermissionField = value; } } public YesNoType TakeOwnership { get { return this.takeOwnershipField; } set { this.takeOwnershipFieldSet = true; this.takeOwnershipField = value; } } /// /// Bit mask for SPECIFIC_RIGHTS_ALL from WinNT.h (0x0000FFFF). /// public YesNoType SpecificRightsAll { get { return this.specificRightsAllField; } set { this.specificRightsAllFieldSet = true; this.specificRightsAllField = value; } } public YesNoType ReadAttributes { get { return this.readAttributesField; } set { this.readAttributesFieldSet = true; this.readAttributesField = value; } } public YesNoType WriteAttributes { get { return this.writeAttributesField; } set { this.writeAttributesFieldSet = true; this.writeAttributesField = value; } } public YesNoType ReadExtendedAttributes { get { return this.readExtendedAttributesField; } set { this.readExtendedAttributesFieldSet = true; this.readExtendedAttributesField = value; } } public YesNoType WriteExtendedAttributes { get { return this.writeExtendedAttributesField; } set { this.writeExtendedAttributesFieldSet = true; this.writeExtendedAttributesField = value; } } public YesNoType Synchronize { get { return this.synchronizeField; } set { this.synchronizeFieldSet = true; this.synchronizeField = value; } } /// /// For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. /// public YesNoType CreateFile { get { return this.createFileField; } set { this.createFileFieldSet = true; this.createFileField = value; } } /// /// For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. /// public YesNoType CreateChild { get { return this.createChildField; } set { this.createChildFieldSet = true; this.createChildField = value; } } /// /// For a directory, the right to delete a directory and all the files it contains, including read-only files. Only valid under a 'CreateFolder' parent. /// public YesNoType DeleteChild { get { return this.deleteChildField; } set { this.deleteChildFieldSet = true; this.deleteChildField = value; } } /// /// For a directory, the right to traverse the directory. By default, users are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. Only valid under a 'CreateFolder' parent. /// public YesNoType Traverse { get { return this.traverseField; } set { this.traverseFieldSet = true; this.traverseField = value; } } public YesNoType Append { get { return this.appendField; } set { this.appendFieldSet = true; this.appendField = value; } } public YesNoType Execute { get { return this.executeField; } set { this.executeFieldSet = true; this.executeField = value; } } /// /// Bit mask for FILE_ALL_ACCESS from WinNT.h (0x001F01FF). /// public YesNoType FileAllRights { get { return this.fileAllRightsField; } set { this.fileAllRightsFieldSet = true; this.fileAllRightsField = value; } } public YesNoType Write { get { return this.writeField; } set { this.writeFieldSet = true; this.writeField = value; } } public YesNoType CreateSubkeys { get { return this.createSubkeysField; } set { this.createSubkeysFieldSet = true; this.createSubkeysField = value; } } public YesNoType EnumerateSubkeys { get { return this.enumerateSubkeysField; } set { this.enumerateSubkeysFieldSet = true; this.enumerateSubkeysField = value; } } public YesNoType Notify { get { return this.notifyField; } set { this.notifyFieldSet = true; this.notifyField = value; } } public YesNoType CreateLink { get { return this.createLinkField; } set { this.createLinkFieldSet = true; this.createLinkField = value; } } public YesNoType GenericAll { get { return this.genericAllField; } set { this.genericAllFieldSet = true; this.genericAllField = value; } } public YesNoType GenericExecute { get { return this.genericExecuteField; } set { this.genericExecuteFieldSet = true; this.genericExecuteField = value; } } public YesNoType GenericWrite { get { return this.genericWriteField; } set { this.genericWriteFieldSet = true; this.genericWriteField = value; } } /// /// specifying this will fail to grant read access /// public YesNoType GenericRead { get { return this.genericReadField; } set { this.genericReadFieldSet = true; this.genericReadField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Permission", "http://wixtoolset.org/schemas/v4/wxs"); if (this.domainFieldSet) { writer.WriteAttributeString("Domain", this.domainField); } if (this.userFieldSet) { writer.WriteAttributeString("User", this.userField); } if (this.readFieldSet) { if ((this.readField == YesNoType.no)) { writer.WriteAttributeString("Read", "no"); } if ((this.readField == YesNoType.yes)) { writer.WriteAttributeString("Read", "yes"); } } if (this.deleteFieldSet) { if ((this.deleteField == YesNoType.no)) { writer.WriteAttributeString("Delete", "no"); } if ((this.deleteField == YesNoType.yes)) { writer.WriteAttributeString("Delete", "yes"); } } if (this.readPermissionFieldSet) { if ((this.readPermissionField == YesNoType.no)) { writer.WriteAttributeString("ReadPermission", "no"); } if ((this.readPermissionField == YesNoType.yes)) { writer.WriteAttributeString("ReadPermission", "yes"); } } if (this.changePermissionFieldSet) { if ((this.changePermissionField == YesNoType.no)) { writer.WriteAttributeString("ChangePermission", "no"); } if ((this.changePermissionField == YesNoType.yes)) { writer.WriteAttributeString("ChangePermission", "yes"); } } if (this.takeOwnershipFieldSet) { if ((this.takeOwnershipField == YesNoType.no)) { writer.WriteAttributeString("TakeOwnership", "no"); } if ((this.takeOwnershipField == YesNoType.yes)) { writer.WriteAttributeString("TakeOwnership", "yes"); } } if (this.specificRightsAllFieldSet) { if ((this.specificRightsAllField == YesNoType.no)) { writer.WriteAttributeString("SpecificRightsAll", "no"); } if ((this.specificRightsAllField == YesNoType.yes)) { writer.WriteAttributeString("SpecificRightsAll", "yes"); } } if (this.readAttributesFieldSet) { if ((this.readAttributesField == YesNoType.no)) { writer.WriteAttributeString("ReadAttributes", "no"); } if ((this.readAttributesField == YesNoType.yes)) { writer.WriteAttributeString("ReadAttributes", "yes"); } } if (this.writeAttributesFieldSet) { if ((this.writeAttributesField == YesNoType.no)) { writer.WriteAttributeString("WriteAttributes", "no"); } if ((this.writeAttributesField == YesNoType.yes)) { writer.WriteAttributeString("WriteAttributes", "yes"); } } if (this.readExtendedAttributesFieldSet) { if ((this.readExtendedAttributesField == YesNoType.no)) { writer.WriteAttributeString("ReadExtendedAttributes", "no"); } if ((this.readExtendedAttributesField == YesNoType.yes)) { writer.WriteAttributeString("ReadExtendedAttributes", "yes"); } } if (this.writeExtendedAttributesFieldSet) { if ((this.writeExtendedAttributesField == YesNoType.no)) { writer.WriteAttributeString("WriteExtendedAttributes", "no"); } if ((this.writeExtendedAttributesField == YesNoType.yes)) { writer.WriteAttributeString("WriteExtendedAttributes", "yes"); } } if (this.synchronizeFieldSet) { if ((this.synchronizeField == YesNoType.no)) { writer.WriteAttributeString("Synchronize", "no"); } if ((this.synchronizeField == YesNoType.yes)) { writer.WriteAttributeString("Synchronize", "yes"); } } if (this.createFileFieldSet) { if ((this.createFileField == YesNoType.no)) { writer.WriteAttributeString("CreateFile", "no"); } if ((this.createFileField == YesNoType.yes)) { writer.WriteAttributeString("CreateFile", "yes"); } } if (this.createChildFieldSet) { if ((this.createChildField == YesNoType.no)) { writer.WriteAttributeString("CreateChild", "no"); } if ((this.createChildField == YesNoType.yes)) { writer.WriteAttributeString("CreateChild", "yes"); } } if (this.deleteChildFieldSet) { if ((this.deleteChildField == YesNoType.no)) { writer.WriteAttributeString("DeleteChild", "no"); } if ((this.deleteChildField == YesNoType.yes)) { writer.WriteAttributeString("DeleteChild", "yes"); } } if (this.traverseFieldSet) { if ((this.traverseField == YesNoType.no)) { writer.WriteAttributeString("Traverse", "no"); } if ((this.traverseField == YesNoType.yes)) { writer.WriteAttributeString("Traverse", "yes"); } } if (this.appendFieldSet) { if ((this.appendField == YesNoType.no)) { writer.WriteAttributeString("Append", "no"); } if ((this.appendField == YesNoType.yes)) { writer.WriteAttributeString("Append", "yes"); } } if (this.executeFieldSet) { if ((this.executeField == YesNoType.no)) { writer.WriteAttributeString("Execute", "no"); } if ((this.executeField == YesNoType.yes)) { writer.WriteAttributeString("Execute", "yes"); } } if (this.fileAllRightsFieldSet) { if ((this.fileAllRightsField == YesNoType.no)) { writer.WriteAttributeString("FileAllRights", "no"); } if ((this.fileAllRightsField == YesNoType.yes)) { writer.WriteAttributeString("FileAllRights", "yes"); } } if (this.writeFieldSet) { if ((this.writeField == YesNoType.no)) { writer.WriteAttributeString("Write", "no"); } if ((this.writeField == YesNoType.yes)) { writer.WriteAttributeString("Write", "yes"); } } if (this.createSubkeysFieldSet) { if ((this.createSubkeysField == YesNoType.no)) { writer.WriteAttributeString("CreateSubkeys", "no"); } if ((this.createSubkeysField == YesNoType.yes)) { writer.WriteAttributeString("CreateSubkeys", "yes"); } } if (this.enumerateSubkeysFieldSet) { if ((this.enumerateSubkeysField == YesNoType.no)) { writer.WriteAttributeString("EnumerateSubkeys", "no"); } if ((this.enumerateSubkeysField == YesNoType.yes)) { writer.WriteAttributeString("EnumerateSubkeys", "yes"); } } if (this.notifyFieldSet) { if ((this.notifyField == YesNoType.no)) { writer.WriteAttributeString("Notify", "no"); } if ((this.notifyField == YesNoType.yes)) { writer.WriteAttributeString("Notify", "yes"); } } if (this.createLinkFieldSet) { if ((this.createLinkField == YesNoType.no)) { writer.WriteAttributeString("CreateLink", "no"); } if ((this.createLinkField == YesNoType.yes)) { writer.WriteAttributeString("CreateLink", "yes"); } } if (this.genericAllFieldSet) { if ((this.genericAllField == YesNoType.no)) { writer.WriteAttributeString("GenericAll", "no"); } if ((this.genericAllField == YesNoType.yes)) { writer.WriteAttributeString("GenericAll", "yes"); } } if (this.genericExecuteFieldSet) { if ((this.genericExecuteField == YesNoType.no)) { writer.WriteAttributeString("GenericExecute", "no"); } if ((this.genericExecuteField == YesNoType.yes)) { writer.WriteAttributeString("GenericExecute", "yes"); } } if (this.genericWriteFieldSet) { if ((this.genericWriteField == YesNoType.no)) { writer.WriteAttributeString("GenericWrite", "no"); } if ((this.genericWriteField == YesNoType.yes)) { writer.WriteAttributeString("GenericWrite", "yes"); } } if (this.genericReadFieldSet) { if ((this.genericReadField == YesNoType.no)) { writer.WriteAttributeString("GenericRead", "no"); } if ((this.genericReadField == YesNoType.yes)) { writer.WriteAttributeString("GenericRead", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Domain" == name)) { this.domainField = value; this.domainFieldSet = true; } if (("User" == name)) { this.userField = value; this.userFieldSet = true; } if (("Read" == name)) { this.readField = Enums.ParseYesNoType(value); this.readFieldSet = true; } if (("Delete" == name)) { this.deleteField = Enums.ParseYesNoType(value); this.deleteFieldSet = true; } if (("ReadPermission" == name)) { this.readPermissionField = Enums.ParseYesNoType(value); this.readPermissionFieldSet = true; } if (("ChangePermission" == name)) { this.changePermissionField = Enums.ParseYesNoType(value); this.changePermissionFieldSet = true; } if (("TakeOwnership" == name)) { this.takeOwnershipField = Enums.ParseYesNoType(value); this.takeOwnershipFieldSet = true; } if (("SpecificRightsAll" == name)) { this.specificRightsAllField = Enums.ParseYesNoType(value); this.specificRightsAllFieldSet = true; } if (("ReadAttributes" == name)) { this.readAttributesField = Enums.ParseYesNoType(value); this.readAttributesFieldSet = true; } if (("WriteAttributes" == name)) { this.writeAttributesField = Enums.ParseYesNoType(value); this.writeAttributesFieldSet = true; } if (("ReadExtendedAttributes" == name)) { this.readExtendedAttributesField = Enums.ParseYesNoType(value); this.readExtendedAttributesFieldSet = true; } if (("WriteExtendedAttributes" == name)) { this.writeExtendedAttributesField = Enums.ParseYesNoType(value); this.writeExtendedAttributesFieldSet = true; } if (("Synchronize" == name)) { this.synchronizeField = Enums.ParseYesNoType(value); this.synchronizeFieldSet = true; } if (("CreateFile" == name)) { this.createFileField = Enums.ParseYesNoType(value); this.createFileFieldSet = true; } if (("CreateChild" == name)) { this.createChildField = Enums.ParseYesNoType(value); this.createChildFieldSet = true; } if (("DeleteChild" == name)) { this.deleteChildField = Enums.ParseYesNoType(value); this.deleteChildFieldSet = true; } if (("Traverse" == name)) { this.traverseField = Enums.ParseYesNoType(value); this.traverseFieldSet = true; } if (("Append" == name)) { this.appendField = Enums.ParseYesNoType(value); this.appendFieldSet = true; } if (("Execute" == name)) { this.executeField = Enums.ParseYesNoType(value); this.executeFieldSet = true; } if (("FileAllRights" == name)) { this.fileAllRightsField = Enums.ParseYesNoType(value); this.fileAllRightsFieldSet = true; } if (("Write" == name)) { this.writeField = Enums.ParseYesNoType(value); this.writeFieldSet = true; } if (("CreateSubkeys" == name)) { this.createSubkeysField = Enums.ParseYesNoType(value); this.createSubkeysFieldSet = true; } if (("EnumerateSubkeys" == name)) { this.enumerateSubkeysField = Enums.ParseYesNoType(value); this.enumerateSubkeysFieldSet = true; } if (("Notify" == name)) { this.notifyField = Enums.ParseYesNoType(value); this.notifyFieldSet = true; } if (("CreateLink" == name)) { this.createLinkField = Enums.ParseYesNoType(value); this.createLinkFieldSet = true; } if (("GenericAll" == name)) { this.genericAllField = Enums.ParseYesNoType(value); this.genericAllFieldSet = true; } if (("GenericExecute" == name)) { this.genericExecuteField = Enums.ParseYesNoType(value); this.genericExecuteFieldSet = true; } if (("GenericWrite" == name)) { this.genericWriteField = Enums.ParseYesNoType(value); this.genericWriteFieldSet = true; } if (("GenericRead" == name)) { this.genericReadField = Enums.ParseYesNoType(value); this.genericReadFieldSet = true; } } } /// /// Sets ACLs on File, Registry, or CreateFolder. When under a Registry element, this cannot be used /// if the Action attribute's value is remove or removeKeyOnInstall. This element is only available /// when installing with MSI 5.0. For downlevel support, see the PermissionEx element from the /// WixUtilExtension. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PermissionEx : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string sddlField; private bool sddlFieldSet; private ISchemaElement parentElement; public PermissionEx() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Condition))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Primary key used to identify this particular entry. If this is not specified the parent element's Id attribute /// will be used instead. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Security descriptor to apply to parent object. /// public string Sddl { get { return this.sddlField; } set { this.sddlFieldSet = true; this.sddlField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Condition" == childName)) { childValue = new Condition(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PermissionEx", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sddlFieldSet) { writer.WriteAttributeString("Sddl", this.sddlField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Sddl" == name)) { this.sddlField = value; this.sddlFieldSet = true; } } } /// /// Copy or move an existing file on the target machine, or copy a file that is being installed, to another destination. When /// this element is nested under a File element, the parent file will be installed, then copied to the specified destination /// if the parent component of the file is selected for installation or removal. When this element is nested under /// a Component element and no FileId attribute is specified, the file to copy or move must already be on the target machine. /// When this element is nested under a Component element and the FileId attribute is specified, the specified file is installed, /// then copied to the specified destination if the parent component is selected for installation or removal (use /// this option to control the copy of a file in a different component by the parent component's installation state). If the /// specified destination directory is the same as the directory containing the original file and the name for the proposed source /// file is the same as the original, then no action takes place. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CopyFile : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string fileIdField; private bool fileIdFieldSet; private string sourceDirectoryField; private bool sourceDirectoryFieldSet; private string sourcePropertyField; private bool sourcePropertyFieldSet; private string sourceNameField; private bool sourceNameFieldSet; private string destinationDirectoryField; private bool destinationDirectoryFieldSet; private string destinationPropertyField; private bool destinationPropertyFieldSet; private string destinationNameField; private bool destinationNameFieldSet; private string destinationShortNameField; private bool destinationShortNameFieldSet; private YesNoType deleteField; private bool deleteFieldSet; private ISchemaElement parentElement; /// /// Primary key used to identify this particular entry. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This attribute cannot be specified if the element is nested under a File element. Set this attribute's value to the identifier /// of a file from a different component to copy it based on the install state of the parent component. /// public string FileId { get { return this.fileIdField; } set { this.fileIdFieldSet = true; this.fileIdField = value; } } /// /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set /// this value to the source directory from which to copy or move an existing file on the target machine. This Directory must /// exist in the installer database at creation time. This attribute cannot be specified in conjunction with SourceProperty. /// public string SourceDirectory { get { return this.sourceDirectoryField; } set { this.sourceDirectoryFieldSet = true; this.sourceDirectoryField = value; } } /// /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set /// this value to a property that will have a value that resolves to the full path of the source directory (or full path /// including file name if SourceName is not specified). The property does not have to exist in the installer database at /// creation time; it could be created at installation time by a custom action, on the command line, etc. This attribute /// cannot be specified in conjunction with SourceDirectory. /// public string SourceProperty { get { return this.sourcePropertyField; } set { this.sourcePropertyFieldSet = true; this.sourcePropertyField = value; } } /// /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. Set /// this value to the localizable name of the file(s) to be copied or moved. All of the files that /// match the wild card will be removed from the specified directory. The value is a filename that may also /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. If this /// attribute is not specified (and this element is not nested under a File element or specify a FileId attribute) then the /// SourceProperty attribute should be set to the name of a property that will resolve to the full path of the source filename. /// If the value of this attribute contains a "*" wildcard and the DestinationName attribute is specified, all moved or copied /// files retain the file names from their sources. /// public string SourceName { get { return this.sourceNameField; } set { this.sourceNameFieldSet = true; this.sourceNameField = value; } } /// /// Set this value to the destination directory where an existing file on the target machine should be moved or copied to. This /// Directory must exist in the installer database at creation time. This attribute cannot be specified in conjunction with /// DestinationProperty. /// public string DestinationDirectory { get { return this.destinationDirectoryField; } set { this.destinationDirectoryFieldSet = true; this.destinationDirectoryField = value; } } /// /// Set this value to a property that will have a value that resolves to the full path of the destination directory. The property /// does not have to exist in the installer database at creation time; it could be created at installation time by a custom /// action, on the command line, etc. This attribute cannot be specified in conjunction with DestinationDirectory. /// public string DestinationProperty { get { return this.destinationPropertyField; } set { this.destinationPropertyFieldSet = true; this.destinationPropertyField = value; } } /// /// In prior versions of the WiX toolset, this attribute specified the short file name. /// Now set this value to the localizable name to be given to the original file after it is moved or copied. /// If this attribute is not specified, then the destination file is given the same name as the source file. /// If a short file name is specified, the DestinationShortName attribute may not be specified. /// Also, if this value is a long file name, the DestinationShortName attribute may be omitted to /// allow WiX to attempt to generate a unique short file name. /// However, if this name collides with another file or you wish to manually specify /// the short file name, then the DestinationShortName attribute may be specified. /// public string DestinationName { get { return this.destinationNameField; } set { this.destinationNameFieldSet = true; this.destinationNameField = value; } } /// /// The short file name of the file in 8.3 format. /// This attribute should only be set if there is a conflict between generated short file names /// or you wish to manually specify the short file name. /// public string DestinationShortName { get { return this.destinationShortNameField; } set { this.destinationShortNameFieldSet = true; this.destinationShortNameField = value; } } /// /// This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. In other /// cases, if the attribute is not specified, the default value is "no" and the file is copied, not moved. Set the value to "yes" /// in order to move the file (thus deleting the source file) instead of copying it. /// public YesNoType Delete { get { return this.deleteField; } set { this.deleteFieldSet = true; this.deleteField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CopyFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.fileIdFieldSet) { writer.WriteAttributeString("FileId", this.fileIdField); } if (this.sourceDirectoryFieldSet) { writer.WriteAttributeString("SourceDirectory", this.sourceDirectoryField); } if (this.sourcePropertyFieldSet) { writer.WriteAttributeString("SourceProperty", this.sourcePropertyField); } if (this.sourceNameFieldSet) { writer.WriteAttributeString("SourceName", this.sourceNameField); } if (this.destinationDirectoryFieldSet) { writer.WriteAttributeString("DestinationDirectory", this.destinationDirectoryField); } if (this.destinationPropertyFieldSet) { writer.WriteAttributeString("DestinationProperty", this.destinationPropertyField); } if (this.destinationNameFieldSet) { writer.WriteAttributeString("DestinationName", this.destinationNameField); } if (this.destinationShortNameFieldSet) { writer.WriteAttributeString("DestinationShortName", this.destinationShortNameField); } if (this.deleteFieldSet) { if ((this.deleteField == YesNoType.no)) { writer.WriteAttributeString("Delete", "no"); } if ((this.deleteField == YesNoType.yes)) { writer.WriteAttributeString("Delete", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("FileId" == name)) { this.fileIdField = value; this.fileIdFieldSet = true; } if (("SourceDirectory" == name)) { this.sourceDirectoryField = value; this.sourceDirectoryFieldSet = true; } if (("SourceProperty" == name)) { this.sourcePropertyField = value; this.sourcePropertyFieldSet = true; } if (("SourceName" == name)) { this.sourceNameField = value; this.sourceNameFieldSet = true; } if (("DestinationDirectory" == name)) { this.destinationDirectoryField = value; this.destinationDirectoryFieldSet = true; } if (("DestinationProperty" == name)) { this.destinationPropertyField = value; this.destinationPropertyFieldSet = true; } if (("DestinationName" == name)) { this.destinationNameField = value; this.destinationNameFieldSet = true; } if (("DestinationShortName" == name)) { this.destinationShortNameField = value; this.destinationShortNameFieldSet = true; } if (("Delete" == name)) { this.deleteField = Enums.ParseYesNoType(value); this.deleteFieldSet = true; } } } /// /// File specification for File table, must be child node of Component. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class File : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string companionFileField; private bool companionFileFieldSet; private string nameField; private bool nameFieldSet; private YesNoType keyPathField; private bool keyPathFieldSet; private string shortNameField; private bool shortNameFieldSet; private YesNoType readOnlyField; private bool readOnlyFieldSet; private YesNoType hiddenField; private bool hiddenFieldSet; private YesNoType systemField; private bool systemFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private YesNoType checksumField; private bool checksumFieldSet; private YesNoDefaultType compressedField; private bool compressedFieldSet; private string bindPathField; private bool bindPathFieldSet; private int selfRegCostField; private bool selfRegCostFieldSet; private YesNoType trueTypeField; private bool trueTypeFieldSet; private string fontTitleField; private bool fontTitleFieldSet; private string defaultLanguageField; private bool defaultLanguageFieldSet; private int defaultSizeField; private bool defaultSizeFieldSet; private string defaultVersionField; private bool defaultVersionFieldSet; private AssemblyType assemblyField; private bool assemblyFieldSet; private string assemblyManifestField; private bool assemblyManifestFieldSet; private string assemblyApplicationField; private bool assemblyApplicationFieldSet; private ProcessorArchitectureType processorArchitectureField; private bool processorArchitectureFieldSet; private string diskIdField; private bool diskIdFieldSet; private string sourceField; private bool sourceFieldSet; private string srcField; private bool srcFieldSet; private int patchGroupField; private bool patchGroupFieldSet; private YesNoType patchIgnoreField; private bool patchIgnoreFieldSet; private YesNoType patchAllowIgnoreOnErrorField; private bool patchAllowIgnoreOnErrorFieldSet; private YesNoType patchWholeFileField; private bool patchWholeFileFieldSet; private ISchemaElement parentElement; public File() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AssemblyName))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The unique identifier for this File element. If you omit Id, it defaults to the file name portion of the Source attribute, if specified. May be referenced as a Property by specifying [#value]. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set this attribute to make this file a companion child of another file. The installation /// state of a companion file depends not on its own file versioning information, but on the versioning of its /// companion parent. A file that is the key path for its component can not be a companion file (that means /// this attribute cannot be set if KeyPath="yes" for this file). The Version attribute cannot be set along /// with this attribute since companion files are not installed based on their own version. /// public string CompanionFile { get { return this.companionFileField; } set { this.companionFileFieldSet = true; this.companionFileField = value; } } /// /// In prior versions of the WiX toolset, this attribute specified the short file name. /// This attribute's value may now be either a short or long file name. /// If a short file name is specified, the ShortName attribute may not be specified. /// Also, if this value is a long file name, the ShortName attribute may be omitted to /// allow WiX to attempt to generate a unique short file name. /// However, if this name collides with another file or you wish to manually specify /// the short file name, then the ShortName attribute may be specified. /// Finally, if this attribute is omitted then its default value is the file name portion /// of the Source attribute, if one is specified, or the value of the Id attribute, if /// the Source attribute is omitted or doesn't contain a file name. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Set to yes in order to force this file to be the key path for the parent component. /// public YesNoType KeyPath { get { return this.keyPathField; } set { this.keyPathFieldSet = true; this.keyPathField = value; } } /// /// The short file name of the file in 8.3 format. /// This attribute should only be set if there is a conflict between generated short file names /// or the user wants to manually specify the short file name. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. /// public YesNoType ReadOnly { get { return this.readOnlyField; } set { this.readOnlyFieldSet = true; this.readOnlyField = value; } } /// /// Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. /// public YesNoType Hidden { get { return this.hiddenField; } set { this.hiddenFieldSet = true; this.hiddenField = value; } } /// /// Set to yes in order to have the file's system attribute set when it is installed on the target machine. /// public YesNoType System { get { return this.systemField; } set { this.systemFieldSet = true; this.systemField = value; } } /// /// If a file is vital, then installation cannot proceed unless the file is successfully installed. The user will have no option to ignore an error installing this file. If an error occurs, they can merely retry to install the file or abort the installation. The default is "yes," unless the -sfdvital switch (candle.exe) or SuppressFileDefaultVital property (.wixproj) is used. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// This attribute should be set to "yes" for every executable file in the installation that has a valid checksum stored in the Portable Executable (PE) file header. Only those files that have this attribute set will be verified for valid checksum during a reinstall. /// public YesNoType Checksum { get { return this.checksumField; } set { this.checksumFieldSet = true; this.checksumField = value; } } /// /// Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. /// public YesNoDefaultType Compressed { get { return this.compressedField; } set { this.compressedFieldSet = true; this.compressedField = value; } } /// /// A list of paths, separated by semicolons, that represent the paths to be searched to find the imported DLLs. The list is usually a list of properties, with each property enclosed inside square brackets. The value may be set to an empty string. Including this attribute will cause an entry to be generated for the file in the BindImage table. /// public string BindPath { get { return this.bindPathField; } set { this.bindPathFieldSet = true; this.bindPathField = value; } } /// /// The cost of registering the file in bytes. This must be a non-negative number. Including this attribute will cause an entry to be generated for the file in the SelfReg table. /// public int SelfRegCost { get { return this.selfRegCostField; } set { this.selfRegCostFieldSet = true; this.selfRegCostField = value; } } /// /// Causes an entry to be generated for the file in the Font table with no FontTitle specified. This attribute is intended to be used to register the file as a TrueType font. /// public YesNoType TrueType { get { return this.trueTypeField; } set { this.trueTypeFieldSet = true; this.trueTypeField = value; } } /// /// Causes an entry to be generated for the file in the Font table with the specified FontTitle. This attribute is intended to be used to register the file as a non-TrueType font. /// public string FontTitle { get { return this.fontTitleField; } set { this.fontTitleFieldSet = true; this.fontTitleField = value; } } /// /// This is the default language of this file. The linker will replace this value from the value in the file if the suppress files option is not used. /// public string DefaultLanguage { get { return this.defaultLanguageField; } set { this.defaultLanguageFieldSet = true; this.defaultLanguageField = value; } } /// /// This is the default size of this file. The linker will replace this value from the value in the file if the suppress files option is not used. /// public int DefaultSize { get { return this.defaultSizeField; } set { this.defaultSizeFieldSet = true; this.defaultSizeField = value; } } /// /// This is the default version of this file. The linker will replace this value from the value in the file if the suppress files option is not used. /// public string DefaultVersion { get { return this.defaultVersionField; } set { this.defaultVersionFieldSet = true; this.defaultVersionField = value; } } /// /// Specifies if this File is a Win32 Assembly or .NET Assembly that needs to be installed into the /// Global Assembly Cache (GAC). If the value is '.net' or 'win32', this file must also be the key path of the Component. /// public AssemblyType Assembly { get { return this.assemblyField; } set { this.assemblyFieldSet = true; this.assemblyField = value; } } /// /// Specifies the file identifier of the manifest file that describes this assembly. /// The manifest file should be in the same component as the assembly it describes. /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. /// public string AssemblyManifest { get { return this.assemblyManifestField; } set { this.assemblyManifestFieldSet = true; this.assemblyManifestField = value; } } /// /// Specifies the file identifier of the application file. This assembly will be isolated /// to the same directory as the application file. /// If this attribute is absent, the assembly will be installed to the Global Assembly Cache (GAC). /// This attribute may only be specified if the Assembly attribute is set to '.net' or 'win32'. /// public string AssemblyApplication { get { return this.assemblyApplicationField; } set { this.assemblyApplicationFieldSet = true; this.assemblyApplicationField = value; } } /// /// Specifies the architecture for this assembly. This attribute should only be used on .NET Framework 2.0 or higher assemblies. /// public ProcessorArchitectureType ProcessorArchitecture { get { return this.processorArchitectureField; } set { this.processorArchitectureFieldSet = true; this.processorArchitectureField = value; } } /// /// The value of this attribute should correspond to the Id attribute of a Media /// element authored elsewhere. By creating this connection between a file and /// its media, you set the packaging options to the values specified in the Media /// element (values such as compression level, cab embedding, etc...). Specifying /// the DiskId attribute on the File element overrides the default DiskId attribute /// from the parent Component element. If no DiskId attribute is specified, /// the default is "1". This DiskId attribute is ignored when creating a merge module /// because merge modules do not have media. /// public string DiskId { get { return this.diskIdField; } set { this.diskIdFieldSet = true; this.diskIdField = value; } } /// /// Specifies the path to the File in the build process. Overrides default source path set by parent directories and Name attribute. This attribute must be set if no source information can be gathered from parent directories. For more information, see /// public string Source { get { return this.sourceField; } set { this.sourceFieldSet = true; this.sourceField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } /// /// This attribute must be set for patch-added files. Each patch should be assigned a different patch group number. Patch groups /// numbers must be greater 0 and should be assigned consecutively. For example, the first patch should use PatchGroup='1', the /// second patch will have PatchGroup='2', etc... /// public int PatchGroup { get { return this.patchGroupField; } set { this.patchGroupFieldSet = true; this.patchGroupField = value; } } /// /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. /// public YesNoType PatchIgnore { get { return this.patchIgnoreField; } set { this.patchIgnoreFieldSet = true; this.patchIgnoreField = value; } } /// /// Set to indicate that the patch is non-vital. /// public YesNoType PatchAllowIgnoreOnError { get { return this.patchAllowIgnoreOnErrorField; } set { this.patchAllowIgnoreOnErrorFieldSet = true; this.patchAllowIgnoreOnErrorField = value; } } /// /// Set if the entire file should be installed rather than creating a binary patch. /// public YesNoType PatchWholeFile { get { return this.patchWholeFileField; } set { this.patchWholeFileFieldSet = true; this.patchWholeFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("AssemblyName" == childName)) { childValue = new AssemblyName(); } if (("Permission" == childName)) { childValue = new Permission(); } if (("PermissionEx" == childName)) { childValue = new PermissionEx(); } if (("CopyFile" == childName)) { childValue = new CopyFile(); } if (("Shortcut" == childName)) { childValue = new Shortcut(); } if (("ODBCDriver" == childName)) { childValue = new ODBCDriver(); } if (("ODBCTranslator" == childName)) { childValue = new ODBCTranslator(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("Class" == childName)) { childValue = new Class(); } if (("AppId" == childName)) { childValue = new AppId(); } if (("TypeLib" == childName)) { childValue = new TypeLib(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a AssemblyType from a string. /// public static AssemblyType ParseAssemblyType(string value) { AssemblyType parsedValue; File.TryParseAssemblyType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a AssemblyType from a string. /// public static bool TryParseAssemblyType(string value, out AssemblyType parsedValue) { parsedValue = AssemblyType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if ((".net" == value)) { parsedValue = AssemblyType.net; } else { if (("no" == value)) { parsedValue = AssemblyType.no; } else { if (("win32" == value)) { parsedValue = AssemblyType.win32; } else { parsedValue = AssemblyType.IllegalValue; return false; } } } return true; } /// /// Parses a ProcessorArchitectureType from a string. /// public static ProcessorArchitectureType ParseProcessorArchitectureType(string value) { ProcessorArchitectureType parsedValue; File.TryParseProcessorArchitectureType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ProcessorArchitectureType from a string. /// public static bool TryParseProcessorArchitectureType(string value, out ProcessorArchitectureType parsedValue) { parsedValue = ProcessorArchitectureType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("msil" == value)) { parsedValue = ProcessorArchitectureType.msil; } else { if (("x86" == value)) { parsedValue = ProcessorArchitectureType.x86; } else { if (("x64" == value)) { parsedValue = ProcessorArchitectureType.x64; } else { if (("ia64" == value)) { parsedValue = ProcessorArchitectureType.ia64; } else { parsedValue = ProcessorArchitectureType.IllegalValue; return false; } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("File", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.companionFileFieldSet) { writer.WriteAttributeString("CompanionFile", this.companionFileField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.keyPathFieldSet) { if ((this.keyPathField == YesNoType.no)) { writer.WriteAttributeString("KeyPath", "no"); } if ((this.keyPathField == YesNoType.yes)) { writer.WriteAttributeString("KeyPath", "yes"); } } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.readOnlyFieldSet) { if ((this.readOnlyField == YesNoType.no)) { writer.WriteAttributeString("ReadOnly", "no"); } if ((this.readOnlyField == YesNoType.yes)) { writer.WriteAttributeString("ReadOnly", "yes"); } } if (this.hiddenFieldSet) { if ((this.hiddenField == YesNoType.no)) { writer.WriteAttributeString("Hidden", "no"); } if ((this.hiddenField == YesNoType.yes)) { writer.WriteAttributeString("Hidden", "yes"); } } if (this.systemFieldSet) { if ((this.systemField == YesNoType.no)) { writer.WriteAttributeString("System", "no"); } if ((this.systemField == YesNoType.yes)) { writer.WriteAttributeString("System", "yes"); } } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.checksumFieldSet) { if ((this.checksumField == YesNoType.no)) { writer.WriteAttributeString("Checksum", "no"); } if ((this.checksumField == YesNoType.yes)) { writer.WriteAttributeString("Checksum", "yes"); } } if (this.compressedFieldSet) { if ((this.compressedField == YesNoDefaultType.@default)) { writer.WriteAttributeString("Compressed", "default"); } if ((this.compressedField == YesNoDefaultType.no)) { writer.WriteAttributeString("Compressed", "no"); } if ((this.compressedField == YesNoDefaultType.yes)) { writer.WriteAttributeString("Compressed", "yes"); } } if (this.bindPathFieldSet) { writer.WriteAttributeString("BindPath", this.bindPathField); } if (this.selfRegCostFieldSet) { writer.WriteAttributeString("SelfRegCost", this.selfRegCostField.ToString(CultureInfo.InvariantCulture)); } if (this.trueTypeFieldSet) { if ((this.trueTypeField == YesNoType.no)) { writer.WriteAttributeString("TrueType", "no"); } if ((this.trueTypeField == YesNoType.yes)) { writer.WriteAttributeString("TrueType", "yes"); } } if (this.fontTitleFieldSet) { writer.WriteAttributeString("FontTitle", this.fontTitleField); } if (this.defaultLanguageFieldSet) { writer.WriteAttributeString("DefaultLanguage", this.defaultLanguageField); } if (this.defaultSizeFieldSet) { writer.WriteAttributeString("DefaultSize", this.defaultSizeField.ToString(CultureInfo.InvariantCulture)); } if (this.defaultVersionFieldSet) { writer.WriteAttributeString("DefaultVersion", this.defaultVersionField); } if (this.assemblyFieldSet) { if ((this.assemblyField == AssemblyType.net)) { writer.WriteAttributeString("Assembly", ".net"); } if ((this.assemblyField == AssemblyType.no)) { writer.WriteAttributeString("Assembly", "no"); } if ((this.assemblyField == AssemblyType.win32)) { writer.WriteAttributeString("Assembly", "win32"); } } if (this.assemblyManifestFieldSet) { writer.WriteAttributeString("AssemblyManifest", this.assemblyManifestField); } if (this.assemblyApplicationFieldSet) { writer.WriteAttributeString("AssemblyApplication", this.assemblyApplicationField); } if (this.processorArchitectureFieldSet) { if ((this.processorArchitectureField == ProcessorArchitectureType.msil)) { writer.WriteAttributeString("ProcessorArchitecture", "msil"); } if ((this.processorArchitectureField == ProcessorArchitectureType.x86)) { writer.WriteAttributeString("ProcessorArchitecture", "x86"); } if ((this.processorArchitectureField == ProcessorArchitectureType.x64)) { writer.WriteAttributeString("ProcessorArchitecture", "x64"); } if ((this.processorArchitectureField == ProcessorArchitectureType.ia64)) { writer.WriteAttributeString("ProcessorArchitecture", "ia64"); } } if (this.diskIdFieldSet) { writer.WriteAttributeString("DiskId", this.diskIdField); } if (this.sourceFieldSet) { writer.WriteAttributeString("Source", this.sourceField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.patchGroupFieldSet) { writer.WriteAttributeString("PatchGroup", this.patchGroupField.ToString(CultureInfo.InvariantCulture)); } if (this.patchIgnoreFieldSet) { if ((this.patchIgnoreField == YesNoType.no)) { writer.WriteAttributeString("PatchIgnore", "no"); } if ((this.patchIgnoreField == YesNoType.yes)) { writer.WriteAttributeString("PatchIgnore", "yes"); } } if (this.patchAllowIgnoreOnErrorFieldSet) { if ((this.patchAllowIgnoreOnErrorField == YesNoType.no)) { writer.WriteAttributeString("PatchAllowIgnoreOnError", "no"); } if ((this.patchAllowIgnoreOnErrorField == YesNoType.yes)) { writer.WriteAttributeString("PatchAllowIgnoreOnError", "yes"); } } if (this.patchWholeFileFieldSet) { if ((this.patchWholeFileField == YesNoType.no)) { writer.WriteAttributeString("PatchWholeFile", "no"); } if ((this.patchWholeFileField == YesNoType.yes)) { writer.WriteAttributeString("PatchWholeFile", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("CompanionFile" == name)) { this.companionFileField = value; this.companionFileFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("KeyPath" == name)) { this.keyPathField = Enums.ParseYesNoType(value); this.keyPathFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("ReadOnly" == name)) { this.readOnlyField = Enums.ParseYesNoType(value); this.readOnlyFieldSet = true; } if (("Hidden" == name)) { this.hiddenField = Enums.ParseYesNoType(value); this.hiddenFieldSet = true; } if (("System" == name)) { this.systemField = Enums.ParseYesNoType(value); this.systemFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("Checksum" == name)) { this.checksumField = Enums.ParseYesNoType(value); this.checksumFieldSet = true; } if (("Compressed" == name)) { this.compressedField = Enums.ParseYesNoDefaultType(value); this.compressedFieldSet = true; } if (("BindPath" == name)) { this.bindPathField = value; this.bindPathFieldSet = true; } if (("SelfRegCost" == name)) { this.selfRegCostField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.selfRegCostFieldSet = true; } if (("TrueType" == name)) { this.trueTypeField = Enums.ParseYesNoType(value); this.trueTypeFieldSet = true; } if (("FontTitle" == name)) { this.fontTitleField = value; this.fontTitleFieldSet = true; } if (("DefaultLanguage" == name)) { this.defaultLanguageField = value; this.defaultLanguageFieldSet = true; } if (("DefaultSize" == name)) { this.defaultSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.defaultSizeFieldSet = true; } if (("DefaultVersion" == name)) { this.defaultVersionField = value; this.defaultVersionFieldSet = true; } if (("Assembly" == name)) { this.assemblyField = File.ParseAssemblyType(value); this.assemblyFieldSet = true; } if (("AssemblyManifest" == name)) { this.assemblyManifestField = value; this.assemblyManifestFieldSet = true; } if (("AssemblyApplication" == name)) { this.assemblyApplicationField = value; this.assemblyApplicationFieldSet = true; } if (("ProcessorArchitecture" == name)) { this.processorArchitectureField = File.ParseProcessorArchitectureType(value); this.processorArchitectureFieldSet = true; } if (("DiskId" == name)) { this.diskIdField = value; this.diskIdFieldSet = true; } if (("Source" == name)) { this.sourceField = value; this.sourceFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("PatchGroup" == name)) { this.patchGroupField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.patchGroupFieldSet = true; } if (("PatchIgnore" == name)) { this.patchIgnoreField = Enums.ParseYesNoType(value); this.patchIgnoreFieldSet = true; } if (("PatchAllowIgnoreOnError" == name)) { this.patchAllowIgnoreOnErrorField = Enums.ParseYesNoType(value); this.patchAllowIgnoreOnErrorFieldSet = true; } if (("PatchWholeFile" == name)) { this.patchWholeFileField = Enums.ParseYesNoType(value); this.patchWholeFileFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum AssemblyType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The file is a .NET Framework assembly. /// net, /// /// The file is not a .NET Framework or Win32 assembly. This is the default value. /// no, /// /// The file is a Win32 assembly. /// win32, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ProcessorArchitectureType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The file is a .NET Framework assembly that is processor-neutral. /// msil, /// /// The file is a .NET Framework assembly for the x86 processor. /// x86, /// /// The file is a .NET Framework assembly for the x64 processor. /// x64, /// /// The file is a .NET Framework assembly for the ia64 processor. /// ia64, } } /// /// Use several of these elements to specify each registry value in a multiString registry value. This element /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The /// values should go in the text area of the MultiStringValue element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MultiStringValue : ISetAttributes, ISchemaElement { private ISchemaElement parentElement; private string valueField; private bool valueFieldSet; public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Use several of these elements to specify each registry value in a multiString registry value. This element /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The /// values should go in the Value attribute of the MultiStringValue element. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MultiStringValue", "http://wixtoolset.org/schemas/v4/wxs"); if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } } /// /// Used for organization of child RegistryValue elements or to create a registry key /// (and optionally remove it during uninstallation). /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegistryKey : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ActionType actionField; private bool actionFieldSet; private YesNoType forceCreateOnInstallField; private bool forceCreateOnInstallFieldSet; private YesNoType forceDeleteOnUninstallField; private bool forceDeleteOnUninstallFieldSet; private string keyField; private bool keyFieldSet; private RegistryRootType rootField; private bool rootFieldSet; private ISchemaElement parentElement; public RegistryKey() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be /// generated by hashing the parent Component identifier, Root, Key, and Name. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The Action attribute has been deprecated. In most cases, you can simply omit @Action. If you need to force Windows Installer /// to create an empty key or recursively delete the key, use the ForceCreateOnInstall or ForceDeleteOnUninstall attributes instead. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// Set this attribute to 'yes' to create an empty key, if absent, when the parent component is installed. /// This value is needed only to create an empty key with no subkeys or values. Windows Installer creates /// keys as needed to store subkeys and values. The default is "no". /// public YesNoType ForceCreateOnInstall { get { return this.forceCreateOnInstallField; } set { this.forceCreateOnInstallFieldSet = true; this.forceCreateOnInstallField = value; } } /// /// Set this attribute to 'yes' to remove the key with all its values and subkeys when the parent component is uninstalled. /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. /// The default is "no". /// public YesNoType ForceDeleteOnUninstall { get { return this.forceDeleteOnUninstallField; } set { this.forceDeleteOnUninstallFieldSet = true; this.forceDeleteOnUninstallField = value; } } /// /// The localizable key for the registry value. /// If the parent element is a RegistryKey, this value may be omitted to use the /// path of the parent, or if its specified it will be appended to the path of the parent. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// The predefined root key for the registry value. /// public RegistryRootType Root { get { return this.rootField; } set { this.rootFieldSet = true; this.rootField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("RegistryKey" == childName)) { childValue = new RegistryKey(); } if (("RegistryValue" == childName)) { childValue = new RegistryValue(); } if (("Permission" == childName)) { childValue = new Permission(); } if (("PermissionEx" == childName)) { childValue = new PermissionEx(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; RegistryKey.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("create" == value)) { parsedValue = ActionType.create; } else { if (("createAndRemoveOnUninstall" == value)) { parsedValue = ActionType.createAndRemoveOnUninstall; } else { if (("none" == value)) { parsedValue = ActionType.none; } else { parsedValue = ActionType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.actionFieldSet) { if ((this.actionField == ActionType.create)) { writer.WriteAttributeString("Action", "create"); } if ((this.actionField == ActionType.createAndRemoveOnUninstall)) { writer.WriteAttributeString("Action", "createAndRemoveOnUninstall"); } if ((this.actionField == ActionType.none)) { writer.WriteAttributeString("Action", "none"); } } if (this.forceCreateOnInstallFieldSet) { if ((this.forceCreateOnInstallField == YesNoType.no)) { writer.WriteAttributeString("ForceCreateOnInstall", "no"); } if ((this.forceCreateOnInstallField == YesNoType.yes)) { writer.WriteAttributeString("ForceCreateOnInstall", "yes"); } } if (this.forceDeleteOnUninstallFieldSet) { if ((this.forceDeleteOnUninstallField == YesNoType.no)) { writer.WriteAttributeString("ForceDeleteOnUninstall", "no"); } if ((this.forceDeleteOnUninstallField == YesNoType.yes)) { writer.WriteAttributeString("ForceDeleteOnUninstall", "yes"); } } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.rootFieldSet) { if ((this.rootField == RegistryRootType.HKMU)) { writer.WriteAttributeString("Root", "HKMU"); } if ((this.rootField == RegistryRootType.HKCR)) { writer.WriteAttributeString("Root", "HKCR"); } if ((this.rootField == RegistryRootType.HKCU)) { writer.WriteAttributeString("Root", "HKCU"); } if ((this.rootField == RegistryRootType.HKLM)) { writer.WriteAttributeString("Root", "HKLM"); } if ((this.rootField == RegistryRootType.HKU)) { writer.WriteAttributeString("Root", "HKU"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Action" == name)) { this.actionField = RegistryKey.ParseActionType(value); this.actionFieldSet = true; } if (("ForceCreateOnInstall" == name)) { this.forceCreateOnInstallField = Enums.ParseYesNoType(value); this.forceCreateOnInstallFieldSet = true; } if (("ForceDeleteOnUninstall" == name)) { this.forceDeleteOnUninstallField = Enums.ParseYesNoType(value); this.forceDeleteOnUninstallFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Root" == name)) { this.rootField = Enums.ParseRegistryRootType(value); this.rootFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Creates the key, if absent, when the parent component is installed. /// create, /// /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. /// Note that this value is useful only if your program creates additional values or subkeys under this key and you want an uninstall to remove them. MSI already /// removes all values and subkeys that it creates, so this option just adds additional overhead to uninstall. /// createAndRemoveOnUninstall, /// /// Does nothing; this element is used merely in WiX authoring for organization and does nothing to the final output. /// This is the default value. /// none, } } /// /// Used to create a registry value. For multi-string values, this can be used to prepend or append values. /// /// For legacy authoring: Use several of these elements to specify each registry value in a multiString registry value. This element /// cannot be used if the Value attribute is specified unless the Type attribute is set to 'multiString'. The /// values should go in the text area of the RegistryValue element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegistryValue : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private RegistryRootType rootField; private bool rootFieldSet; private string keyField; private bool keyFieldSet; private string nameField; private bool nameFieldSet; private string valueField; private bool valueFieldSet; private TypeType typeField; private bool typeFieldSet; private ActionType actionField; private bool actionFieldSet; private YesNoType keyPathField; private bool keyPathFieldSet; private ISchemaElement parentElement; public RegistryValue() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MultiStringValue))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be /// generated by hashing the parent Component identifier, Root, Key, and Name. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The predefined root key for the registry value. /// public RegistryRootType Root { get { return this.rootField; } set { this.rootFieldSet = true; this.rootField = value; } } /// /// The localizable key for the registry value. /// If the parent element is a RegistryKey, this value may be omitted to use the /// path of the parent, or if its specified it will be appended to the path of the parent. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// The localizable registry value name. If this attribute is not provided the default value for the registry key will /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate /// values in the Type attribute to get the desired behavior. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value /// attribute or a child RegistryValue element is specified. This attribute /// should only be set when the value of the Action attribute does not include the word 'remove'. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// This is the action that will be taken for this registry value. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. /// Only one resource (registry, file, etc) can be the KeyPath of a component. /// public YesNoType KeyPath { get { return this.keyPathField; } set { this.keyPathFieldSet = true; this.keyPathField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Permission" == childName)) { childValue = new Permission(); } if (("PermissionEx" == childName)) { childValue = new PermissionEx(); } if (("MultiStringValue" == childName)) { childValue = new MultiStringValue(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; RegistryValue.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("string" == value)) { parsedValue = TypeType.@string; } else { if (("integer" == value)) { parsedValue = TypeType.integer; } else { if (("binary" == value)) { parsedValue = TypeType.binary; } else { if (("expandable" == value)) { parsedValue = TypeType.expandable; } else { if (("multiString" == value)) { parsedValue = TypeType.multiString; } else { parsedValue = TypeType.IllegalValue; return false; } } } } } return true; } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; RegistryValue.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("append" == value)) { parsedValue = ActionType.append; } else { if (("prepend" == value)) { parsedValue = ActionType.prepend; } else { if (("write" == value)) { parsedValue = ActionType.write; } else { parsedValue = ActionType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.rootFieldSet) { if ((this.rootField == RegistryRootType.HKMU)) { writer.WriteAttributeString("Root", "HKMU"); } if ((this.rootField == RegistryRootType.HKCR)) { writer.WriteAttributeString("Root", "HKCR"); } if ((this.rootField == RegistryRootType.HKCU)) { writer.WriteAttributeString("Root", "HKCU"); } if ((this.rootField == RegistryRootType.HKLM)) { writer.WriteAttributeString("Root", "HKLM"); } if ((this.rootField == RegistryRootType.HKU)) { writer.WriteAttributeString("Root", "HKU"); } } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.@string)) { writer.WriteAttributeString("Type", "string"); } if ((this.typeField == TypeType.integer)) { writer.WriteAttributeString("Type", "integer"); } if ((this.typeField == TypeType.binary)) { writer.WriteAttributeString("Type", "binary"); } if ((this.typeField == TypeType.expandable)) { writer.WriteAttributeString("Type", "expandable"); } if ((this.typeField == TypeType.multiString)) { writer.WriteAttributeString("Type", "multiString"); } } if (this.actionFieldSet) { if ((this.actionField == ActionType.append)) { writer.WriteAttributeString("Action", "append"); } if ((this.actionField == ActionType.prepend)) { writer.WriteAttributeString("Action", "prepend"); } if ((this.actionField == ActionType.write)) { writer.WriteAttributeString("Action", "write"); } } if (this.keyPathFieldSet) { if ((this.keyPathField == YesNoType.no)) { writer.WriteAttributeString("KeyPath", "no"); } if ((this.keyPathField == YesNoType.yes)) { writer.WriteAttributeString("KeyPath", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Root" == name)) { this.rootField = Enums.ParseRegistryRootType(value); this.rootFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Type" == name)) { this.typeField = RegistryValue.ParseTypeType(value); this.typeFieldSet = true; } if (("Action" == name)) { this.actionField = RegistryValue.ParseActionType(value); this.actionFieldSet = true; } if (("KeyPath" == name)) { this.keyPathField = Enums.ParseYesNoType(value); this.keyPathFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The value is interpreted and stored as a string (REG_SZ). /// @string, /// /// The value is interpreted and stored as an integer (REG_DWORD). /// integer, /// /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). /// binary, /// /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). /// expandable, /// /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). /// Please note that this value will only result in a multi-string value if there is more than one registry value /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. /// multiString, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Appends the specified value(s) to a multiString registry value. /// append, /// /// Prepends the specified value(s) to a multiString registry value. /// prepend, /// /// Writes a registry value. This is the default value. /// write, } } /// /// Used for removing registry keys and all child keys either during install or uninstall. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveRegistryKey : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ActionType actionField; private bool actionFieldSet; private string keyField; private bool keyFieldSet; private RegistryRootType rootField; private bool rootFieldSet; private ISchemaElement parentElement; /// /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be /// generated by hashing the parent Component identifier, Root, Key, and Name. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This is the action that will be taken for this registry value. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// The localizable key for the registry value. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// The predefined root key for the registry value. /// public RegistryRootType Root { get { return this.rootField; } set { this.rootFieldSet = true; this.rootField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; RemoveRegistryKey.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("removeOnInstall" == value)) { parsedValue = ActionType.removeOnInstall; } else { if (("removeOnUninstall" == value)) { parsedValue = ActionType.removeOnUninstall; } else { parsedValue = ActionType.IllegalValue; return false; } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveRegistryKey", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.actionFieldSet) { if ((this.actionField == ActionType.removeOnInstall)) { writer.WriteAttributeString("Action", "removeOnInstall"); } if ((this.actionField == ActionType.removeOnUninstall)) { writer.WriteAttributeString("Action", "removeOnUninstall"); } } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.rootFieldSet) { if ((this.rootField == RegistryRootType.HKMU)) { writer.WriteAttributeString("Root", "HKMU"); } if ((this.rootField == RegistryRootType.HKCR)) { writer.WriteAttributeString("Root", "HKCR"); } if ((this.rootField == RegistryRootType.HKCU)) { writer.WriteAttributeString("Root", "HKCU"); } if ((this.rootField == RegistryRootType.HKLM)) { writer.WriteAttributeString("Root", "HKLM"); } if ((this.rootField == RegistryRootType.HKU)) { writer.WriteAttributeString("Root", "HKU"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Action" == name)) { this.actionField = RemoveRegistryKey.ParseActionType(value); this.actionFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Root" == name)) { this.rootField = Enums.ParseRegistryRootType(value); this.rootFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Removes a key with all its values and subkeys when the parent component is installed. /// removeOnInstall, /// /// Removes a key with all its values and subkeys when the parent component is uninstalled. /// removeOnUninstall, } } /// /// Used to remove a registry value during installation. /// There is no standard way to remove a single registry value during uninstall (but you can remove an entire key with RemoveRegistryKey). /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveRegistryValue : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string keyField; private bool keyFieldSet; private string nameField; private bool nameFieldSet; private RegistryRootType rootField; private bool rootFieldSet; private ISchemaElement parentElement; /// /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be /// generated by hashing the parent Component identifier, Root, Key, and Name. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The localizable key for the registry value. /// If the parent element is a RegistryKey, this value may be omitted to use the /// path of the parent, or if its specified it will be appended to the path of the parent. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// The localizable registry value name. If this attribute is not provided the default value for the registry key will /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The predefined root key for the registry value. /// public RegistryRootType Root { get { return this.rootField; } set { this.rootFieldSet = true; this.rootField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveRegistryValue", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.rootFieldSet) { if ((this.rootField == RegistryRootType.HKMU)) { writer.WriteAttributeString("Root", "HKMU"); } if ((this.rootField == RegistryRootType.HKCR)) { writer.WriteAttributeString("Root", "HKCR"); } if ((this.rootField == RegistryRootType.HKCU)) { writer.WriteAttributeString("Root", "HKCU"); } if ((this.rootField == RegistryRootType.HKLM)) { writer.WriteAttributeString("Root", "HKLM"); } if ((this.rootField == RegistryRootType.HKU)) { writer.WriteAttributeString("Root", "HKU"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Root" == name)) { this.rootField = Enums.ParseRegistryRootType(value); this.rootFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Registry : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ActionType actionField; private bool actionFieldSet; private string keyField; private bool keyFieldSet; private YesNoType keyPathField; private bool keyPathFieldSet; private string nameField; private bool nameFieldSet; private RegistryRootType rootField; private bool rootFieldSet; private TypeType typeField; private bool typeFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; public Registry() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Primary key used to identify this particular entry. If this attribute is not specified, an identifier will be /// generated by hashing the parent Component identifier, Root, Key, and Name. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This is the action that will be taken for this registry key. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// The localizable key for the registry value. /// public string Key { get { return this.keyField; } set { this.keyFieldSet = true; this.keyField = value; } } /// /// Set this attribute to 'yes' to make this registry key the KeyPath of the parent component. Only one resource (registry, /// file, etc) can be the KeyPath of a component. /// public YesNoType KeyPath { get { return this.keyPathField; } set { this.keyPathFieldSet = true; this.keyPathField = value; } } /// /// The localizable registry value name. If this attribute is not provided the default value for the registry key will /// be set instead. The Windows Installer allows several special values to be set for this attribute. You should not /// use them in WiX. Instead use appropriate values in the Action attribute to get the desired behavior. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The predefined root key for the registry value. /// public RegistryRootType Root { get { return this.rootField; } set { this.rootFieldSet = true; this.rootField = value; } } /// /// Set this attribute to the type of the desired registry key. This attribute must be specified whenever the Value /// attribute or a child RegistryValue element is specified. This attribute /// should only be set when the value of the Action attribute does not include the word 'remove'. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// Set this attribute to the localizable registry value. This value is formatted. The Windows Installer allows /// several special values to be set for this attribute. You should not use them in WiX. Instead use appropriate /// values in the Type attribute to get the desired behavior. This attribute cannot be specified if the Action /// attribute's value contains the word 'remove'. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Permission" == childName)) { childValue = new Permission(); } if (("PermissionEx" == childName)) { childValue = new PermissionEx(); } if (("RegistryValue" == childName)) { childValue = new RegistryValue(); } if (("Registry" == childName)) { childValue = new Registry(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; Registry.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("append" == value)) { parsedValue = ActionType.append; } else { if (("createKey" == value)) { parsedValue = ActionType.createKey; } else { if (("createKeyAndRemoveKeyOnUninstall" == value)) { parsedValue = ActionType.createKeyAndRemoveKeyOnUninstall; } else { if (("prepend" == value)) { parsedValue = ActionType.prepend; } else { if (("remove" == value)) { parsedValue = ActionType.remove; } else { if (("removeKeyOnInstall" == value)) { parsedValue = ActionType.removeKeyOnInstall; } else { if (("removeKeyOnUninstall" == value)) { parsedValue = ActionType.removeKeyOnUninstall; } else { if (("write" == value)) { parsedValue = ActionType.write; } else { parsedValue = ActionType.IllegalValue; return false; } } } } } } } } return true; } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; Registry.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("string" == value)) { parsedValue = TypeType.@string; } else { if (("integer" == value)) { parsedValue = TypeType.integer; } else { if (("binary" == value)) { parsedValue = TypeType.binary; } else { if (("expandable" == value)) { parsedValue = TypeType.expandable; } else { if (("multiString" == value)) { parsedValue = TypeType.multiString; } else { parsedValue = TypeType.IllegalValue; return false; } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Registry", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.actionFieldSet) { if ((this.actionField == ActionType.append)) { writer.WriteAttributeString("Action", "append"); } if ((this.actionField == ActionType.createKey)) { writer.WriteAttributeString("Action", "createKey"); } if ((this.actionField == ActionType.createKeyAndRemoveKeyOnUninstall)) { writer.WriteAttributeString("Action", "createKeyAndRemoveKeyOnUninstall"); } if ((this.actionField == ActionType.prepend)) { writer.WriteAttributeString("Action", "prepend"); } if ((this.actionField == ActionType.remove)) { writer.WriteAttributeString("Action", "remove"); } if ((this.actionField == ActionType.removeKeyOnInstall)) { writer.WriteAttributeString("Action", "removeKeyOnInstall"); } if ((this.actionField == ActionType.removeKeyOnUninstall)) { writer.WriteAttributeString("Action", "removeKeyOnUninstall"); } if ((this.actionField == ActionType.write)) { writer.WriteAttributeString("Action", "write"); } } if (this.keyFieldSet) { writer.WriteAttributeString("Key", this.keyField); } if (this.keyPathFieldSet) { if ((this.keyPathField == YesNoType.no)) { writer.WriteAttributeString("KeyPath", "no"); } if ((this.keyPathField == YesNoType.yes)) { writer.WriteAttributeString("KeyPath", "yes"); } } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.rootFieldSet) { if ((this.rootField == RegistryRootType.HKMU)) { writer.WriteAttributeString("Root", "HKMU"); } if ((this.rootField == RegistryRootType.HKCR)) { writer.WriteAttributeString("Root", "HKCR"); } if ((this.rootField == RegistryRootType.HKCU)) { writer.WriteAttributeString("Root", "HKCU"); } if ((this.rootField == RegistryRootType.HKLM)) { writer.WriteAttributeString("Root", "HKLM"); } if ((this.rootField == RegistryRootType.HKU)) { writer.WriteAttributeString("Root", "HKU"); } } if (this.typeFieldSet) { if ((this.typeField == TypeType.@string)) { writer.WriteAttributeString("Type", "string"); } if ((this.typeField == TypeType.integer)) { writer.WriteAttributeString("Type", "integer"); } if ((this.typeField == TypeType.binary)) { writer.WriteAttributeString("Type", "binary"); } if ((this.typeField == TypeType.expandable)) { writer.WriteAttributeString("Type", "expandable"); } if ((this.typeField == TypeType.multiString)) { writer.WriteAttributeString("Type", "multiString"); } } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Action" == name)) { this.actionField = Registry.ParseActionType(value); this.actionFieldSet = true; } if (("Key" == name)) { this.keyField = value; this.keyFieldSet = true; } if (("KeyPath" == name)) { this.keyPathField = Enums.ParseYesNoType(value); this.keyPathFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Root" == name)) { this.rootField = Enums.ParseRegistryRootType(value); this.rootFieldSet = true; } if (("Type" == name)) { this.typeField = Registry.ParseTypeType(value); this.typeFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Appends the specified value(s) to a multiString registry key. /// append, /// /// Creates the key, if absent, when the parent component is installed. /// createKey, /// /// Creates the key, if absent, when the parent component is installed then remove the key with all its values and subkeys when the parent component is uninstalled. /// createKeyAndRemoveKeyOnUninstall, /// /// Prepends the specified value(s) to a multiString registry key. /// prepend, /// /// Removes a registry name when the parent component is installed. /// remove, /// /// Removes a key with all its values and subkeys when the parent component is installed. /// removeKeyOnInstall, /// /// Removes a key with all its values and subkeys when the parent component is uninstalled. /// removeKeyOnUninstall, /// /// Writes a registry value. /// write, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The value is interpreted and stored as a string (REG_SZ). /// @string, /// /// The value is interpreted and stored as an integer (REG_DWORD). /// integer, /// /// The value is interpreted and stored as a hexadecimal value (REG_BINARY). /// binary, /// /// The value is interpreted and stored as an expandable string (REG_EXPAND_SZ). /// expandable, /// /// The value is interpreted and stored as a multiple strings (REG_MULTI_SZ). /// Please note that this value will only result in a multi-string value if there is more than one registry value /// or the Action attribute's value is 'append' or 'prepend'. Otherwise a string value will be created. /// multiString, } } /// /// Remove a file(s) if the parent component is selected for installation or removal. Multiple files can be removed /// by specifying a wildcard for the value of the Name attribute. By default, the source /// directory of the file is the directory of the parent component. This can be overridden by specifying the /// Directory attribute with a value corresponding to the Id of the source directory, or by specifying the Property /// attribute with a value corresponding to a property that will have a value that resolves to the full path /// to the source directory. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveFile : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string directoryField; private bool directoryFieldSet; private string propertyField; private bool propertyFieldSet; private string nameField; private bool nameFieldSet; private string shortNameField; private bool shortNameFieldSet; private InstallUninstallType onField; private bool onFieldSet; private ISchemaElement parentElement; /// /// Primary key used to identify this particular entry. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// Overrides the directory of the parent component with the value of the specified property. The property /// should have a value that resolves to the full path of the source directory. The property does not have /// to exist in the installer database at creation time; it could be created at installation time by a custom /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// This value should be set to the localizable name of the file(s) to be removed. All of the files that /// match the wild card will be removed from the specified directory. The value is a filename that may also /// contain the wild card characters "?" for any single character or "*" for zero or more occurrences of any character. /// In prior versions of the WiX toolset, this attribute specified the short file name. /// This attribute's value may now be either a short or long file name. /// If a short file name is specified, the ShortName attribute may not be specified. /// Also, if this value is a long file name, the ShortName attribute may be omitted to /// allow WiX to attempt to generate a unique short file name. /// However, if you wish to manually specify the short file name, then the ShortName attribute may be specified. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The short file name of the file in 8.3 format. /// This attribute should only be set if you want to manually specify the short file name. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// This value determines the time at which the file(s) may be removed. For 'install', the file will /// be removed only when the parent component is being installed (msiInstallStateLocal or /// msiInstallStateSource); for 'uninstall', the file will be removed only when the parent component /// is being removed (msiInstallStateAbsent); for 'both', the file will be removed in both cases. /// public InstallUninstallType On { get { return this.onField; } set { this.onFieldSet = true; this.onField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveFile", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.onFieldSet) { if ((this.onField == InstallUninstallType.install)) { writer.WriteAttributeString("On", "install"); } if ((this.onField == InstallUninstallType.uninstall)) { writer.WriteAttributeString("On", "uninstall"); } if ((this.onField == InstallUninstallType.both)) { writer.WriteAttributeString("On", "both"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("On" == name)) { this.onField = Enums.ParseInstallUninstallType(value); this.onFieldSet = true; } } } /// /// Remove an empty folder if the parent component is selected for installation or removal. By default, the folder /// is the directory of the parent component. This can be overridden by specifying the Directory attribute /// with a value corresponding to the Id of the directory, or by specifying the Property attribute with a value /// corresponding to a property that will have a value that resolves to the full path of the folder. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveFolder : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string directoryField; private bool directoryFieldSet; private string propertyField; private bool propertyFieldSet; private InstallUninstallType onField; private bool onFieldSet; private ISchemaElement parentElement; /// /// Primary key used to identify this particular entry. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Overrides the directory of the parent component with a specific Directory. This Directory must exist in the /// installer database at creation time. This attribute cannot be specified in conjunction with the Property attribute. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// Overrides the directory of the parent component with the value of the specified property. The property /// should have a value that resolves to the full path of the source directory. The property does not have /// to exist in the installer database at creation time; it could be created at installation time by a custom /// action, on the command line, etc. This attribute cannot be specified in conjunction with the Directory attribute. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// This value determines the time at which the folder may be removed, based on the install/uninstall of the parent component. /// For 'install', the folder will be removed only when the parent component is being installed (msiInstallStateLocal or /// msiInstallStateSource); for 'uninstall', the folder will be removed only when the parent component /// is being removed (msiInstallStateAbsent); for 'both', the folder will be removed in both cases. /// public InstallUninstallType On { get { return this.onField; } set { this.onFieldSet = true; this.onField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveFolder", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.onFieldSet) { if ((this.onField == InstallUninstallType.install)) { writer.WriteAttributeString("On", "install"); } if ((this.onField == InstallUninstallType.uninstall)) { writer.WriteAttributeString("On", "uninstall"); } if ((this.onField == InstallUninstallType.both)) { writer.WriteAttributeString("On", "both"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("On" == name)) { this.onField = Enums.ParseInstallUninstallType(value); this.onFieldSet = true; } } } /// /// Create folder as part of parent Component. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CreateFolder : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string directoryField; private bool directoryFieldSet; private ISchemaElement parentElement; public CreateFolder() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Permission))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier of Directory to create. Defaults to Directory of parent Component. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Shortcut" == childName)) { childValue = new Shortcut(); } if (("Permission" == childName)) { childValue = new Permission(); } if (("PermissionEx" == childName)) { childValue = new PermissionEx(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CreateFolder", "http://wixtoolset.org/schemas/v4/wxs"); if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } } } /// /// Optional way for defining AppData, generally used for complex CDATA. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AppData : ISetAttributes, ISchemaElement { private ISchemaElement parentElement; private string contentField; private bool contentFieldSet; public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Optional way for defining AppData, generally used for complex CDATA. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AppData", "http://wixtoolset.org/schemas/v4/wxs"); if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } } /// /// Qualified published component for parent Component /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Category : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string qualifierField; private bool qualifierFieldSet; private string appDataField; private bool appDataFieldSet; private string featureField; private bool featureFieldSet; private ISchemaElement parentElement; public Category() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(AppData))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// A string GUID that represents the category of components being grouped together. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// A text string that qualifies the value in the Id attribute. A qualifier is used to distinguish multiple forms of the same Component, such as a Component that is implemented in multiple languages. /// public string Qualifier { get { return this.qualifierField; } set { this.qualifierFieldSet = true; this.qualifierField = value; } } /// /// An optional localizable text describing the category. The string is commonly parsed by the application and can be displayed to the user. It should describe the category. /// public string AppData { get { return this.appDataField; } set { this.appDataFieldSet = true; this.appDataField = value; } } /// /// Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . /// public string Feature { get { return this.featureField; } set { this.featureFieldSet = true; this.featureField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("AppData" == childName)) { childValue = new AppData(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Category", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.qualifierFieldSet) { writer.WriteAttributeString("Qualifier", this.qualifierField); } if (this.appDataFieldSet) { writer.WriteAttributeString("AppData", this.appDataField); } if (this.featureFieldSet) { writer.WriteAttributeString("Feature", this.featureField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Qualifier" == name)) { this.qualifierField = value; this.qualifierFieldSet = true; } if (("AppData" == name)) { this.appDataField = value; this.appDataFieldSet = true; } if (("Feature" == name)) { this.featureField = value; this.featureFieldSet = true; } } } /// /// MIME content-type for an Extension /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MIME : ISchemaElement, ISetAttributes { private YesNoType advertiseField; private bool advertiseFieldSet; private string contentTypeField; private bool contentTypeFieldSet; private string classField; private bool classFieldSet; private YesNoType defaultField; private bool defaultFieldSet; private ISchemaElement parentElement; /// /// Whether this MIME is to be advertised. The default is to match whatever the parent extension element uses. If the parent element is not advertised, then this element cannot be advertised either. /// public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } /// /// This is the identifier for the MIME content. It is commonly written in the form of type/format. /// public string ContentType { get { return this.contentTypeField; } set { this.contentTypeFieldSet = true; this.contentTypeField = value; } } /// /// Class ID for the COM server that is to be associated with the MIME content. /// public string Class { get { return this.classField; } set { this.classFieldSet = true; this.classField = value; } } /// /// If 'yes', become the content type for the parent Extension. The default value is 'no'. /// public YesNoType Default { get { return this.defaultField; } set { this.defaultFieldSet = true; this.defaultField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MIME", "http://wixtoolset.org/schemas/v4/wxs"); if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } if (this.contentTypeFieldSet) { writer.WriteAttributeString("ContentType", this.contentTypeField); } if (this.classFieldSet) { writer.WriteAttributeString("Class", this.classField); } if (this.defaultFieldSet) { if ((this.defaultField == YesNoType.no)) { writer.WriteAttributeString("Default", "no"); } if ((this.defaultField == YesNoType.yes)) { writer.WriteAttributeString("Default", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } if (("ContentType" == name)) { this.contentTypeField = value; this.contentTypeFieldSet = true; } if (("Class" == name)) { this.classField = value; this.classFieldSet = true; } if (("Default" == name)) { this.defaultField = Enums.ParseYesNoType(value); this.defaultFieldSet = true; } } } /// /// Verb definition for an Extension. When advertised, this element creates a row in the /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Verb : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string commandField; private bool commandFieldSet; private string argumentField; private bool argumentFieldSet; private int sequenceField; private bool sequenceFieldSet; private string targetField; private bool targetFieldSet; private string targetFileField; private bool targetFileFieldSet; private string targetPropertyField; private bool targetPropertyFieldSet; private ISchemaElement parentElement; /// /// The verb for the command. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The localized text displayed on the context menu. /// public string Command { get { return this.commandField; } set { this.commandFieldSet = true; this.commandField = value; } } /// /// Value for the command arguments. Note that the resolution of properties in the /// Argument field is limited. A property formatted as [Property] in this field can only be resolved if the property /// already has the intended value when the component owning the verb is installed. For example, for the argument /// "[#MyDoc.doc]" to resolve to the correct value, the same process must be installing the file MyDoc.doc and the /// component that owns the verb. /// public string Argument { get { return this.argumentField; } set { this.argumentFieldSet = true; this.argumentField = value; } } /// /// The sequence of the commands. Only verbs for which the Sequence is specified /// are used to prepare an ordered list for the default value of the shell key. The Verb with the lowest value in this /// column becomes the default verb. Used only for Advertised verbs. /// public int Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } public string Target { get { return this.targetField; } set { this.targetFieldSet = true; this.targetField = value; } } /// /// Either this attribute or the TargetProperty attribute must be specified for a non-advertised verb. /// The value should be the identifier of the target file to be executed for the verb. /// public string TargetFile { get { return this.targetFileField; } set { this.targetFileFieldSet = true; this.targetFileField = value; } } /// /// Either this attribute or the TargetFile attribute must be specified for a non-advertised verb. /// The value should be the identifier of the property which will resolve to the path to the target file to be executed for the verb. /// public string TargetProperty { get { return this.targetPropertyField; } set { this.targetPropertyFieldSet = true; this.targetPropertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Verb", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.commandFieldSet) { writer.WriteAttributeString("Command", this.commandField); } if (this.argumentFieldSet) { writer.WriteAttributeString("Argument", this.argumentField); } if (this.sequenceFieldSet) { writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); } if (this.targetFieldSet) { writer.WriteAttributeString("Target", this.targetField); } if (this.targetFileFieldSet) { writer.WriteAttributeString("TargetFile", this.targetFileField); } if (this.targetPropertyFieldSet) { writer.WriteAttributeString("TargetProperty", this.targetPropertyField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Command" == name)) { this.commandField = value; this.commandFieldSet = true; } if (("Argument" == name)) { this.argumentField = value; this.argumentFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sequenceFieldSet = true; } if (("Target" == name)) { this.targetField = value; this.targetFieldSet = true; } if (("TargetFile" == name)) { this.targetFileField = value; this.targetFileFieldSet = true; } if (("TargetProperty" == name)) { this.targetPropertyField = value; this.targetPropertyFieldSet = true; } } } /// /// Extension for a Component /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Extension : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string contentTypeField; private bool contentTypeFieldSet; private YesNoType advertiseField; private bool advertiseFieldSet; private ISchemaElement parentElement; public Extension() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MIME))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Verb))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// This is simply the file extension, like "doc" or "xml". Do not include the preceding period. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The MIME type that is to be written. /// public string ContentType { get { return this.contentTypeField; } set { this.contentTypeFieldSet = true; this.contentTypeField = value; } } /// /// Whether this extension is to be advertised. The default is "no". /// public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("MIME" == childName)) { childValue = new MIME(); } if (("Verb" == childName)) { childValue = new Verb(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Extension", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.contentTypeFieldSet) { writer.WriteAttributeString("ContentType", this.contentTypeField); } if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("ContentType" == name)) { this.contentTypeField = value; this.contentTypeFieldSet = true; } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } } } /// /// Register a type library (TypeLib). Please note that in order to properly use this /// non-advertised, you will need use this element with Advertise='no' and also author the /// appropriate child Interface elements by extracting them from the type library itself. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class TypeLib : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private YesNoType advertiseField; private bool advertiseFieldSet; private YesNoType controlField; private bool controlFieldSet; private int costField; private bool costFieldSet; private string descriptionField; private bool descriptionFieldSet; private YesNoType hasDiskImageField; private bool hasDiskImageFieldSet; private string helpDirectoryField; private bool helpDirectoryFieldSet; private YesNoType hiddenField; private bool hiddenFieldSet; private int languageField; private bool languageFieldSet; private int majorVersionField; private bool majorVersionFieldSet; private int minorVersionField; private bool minorVersionFieldSet; private int resourceIdField; private bool resourceIdFieldSet; private YesNoType restrictedField; private bool restrictedFieldSet; private ISchemaElement parentElement; public TypeLib() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The GUID that identifes the type library. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Value of 'yes' will create a row in the TypeLib table. /// Value of 'no' will create rows in the Registry table. /// The default value is 'no'. /// public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } /// /// Value of 'yes' means the type library describes controls, and should not be displayed in type browsers intended for nonvisual objects. /// This attribute can only be set if Advertise='no'. /// public YesNoType Control { get { return this.controlField; } set { this.controlFieldSet = true; this.controlField = value; } } /// /// The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. /// public int Cost { get { return this.costField; } set { this.costFieldSet = true; this.costField = value; } } /// /// The localizable description of the type library. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. /// public YesNoType HasDiskImage { get { return this.hasDiskImageField; } set { this.hasDiskImageFieldSet = true; this.hasDiskImageField = value; } } /// /// The identifier of the Directory element for the help directory. /// public string HelpDirectory { get { return this.helpDirectoryField; } set { this.helpDirectoryFieldSet = true; this.helpDirectoryField = value; } } /// /// Value of 'yes' means the type library should not be displayed to users, although its use is not restricted. /// Should be used by controls. Hosts should create a new type library that wraps the control with extended properties. /// This attribute can only be set if Advertise='no'. /// public YesNoType Hidden { get { return this.hiddenField; } set { this.hiddenFieldSet = true; this.hiddenField = value; } } /// /// The language of the type library. This must be a non-negative integer. /// public int Language { get { return this.languageField; } set { this.languageFieldSet = true; this.languageField = value; } } /// /// The major version of the type library. The value should be an integer from 0 - 255. /// public int MajorVersion { get { return this.majorVersionField; } set { this.majorVersionFieldSet = true; this.majorVersionField = value; } } /// /// The minor version of the type library. The value should be an integer from 0 - 255. /// public int MinorVersion { get { return this.minorVersionField; } set { this.minorVersionFieldSet = true; this.minorVersionField = value; } } /// /// The resource id of a typelib. The value is appended to the end of the typelib path in the registry. /// public int ResourceId { get { return this.resourceIdField; } set { this.resourceIdFieldSet = true; this.resourceIdField = value; } } /// /// Value of 'yes' means the type library is restricted, and should not be displayed to users. This attribute can only be set if Advertise='no'. /// public YesNoType Restricted { get { return this.restrictedField; } set { this.restrictedFieldSet = true; this.restrictedField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("AppId" == childName)) { childValue = new AppId(); } if (("Class" == childName)) { childValue = new Class(); } if (("Interface" == childName)) { childValue = new Interface(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("TypeLib", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } if (this.controlFieldSet) { if ((this.controlField == YesNoType.no)) { writer.WriteAttributeString("Control", "no"); } if ((this.controlField == YesNoType.yes)) { writer.WriteAttributeString("Control", "yes"); } } if (this.costFieldSet) { writer.WriteAttributeString("Cost", this.costField.ToString(CultureInfo.InvariantCulture)); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.hasDiskImageFieldSet) { if ((this.hasDiskImageField == YesNoType.no)) { writer.WriteAttributeString("HasDiskImage", "no"); } if ((this.hasDiskImageField == YesNoType.yes)) { writer.WriteAttributeString("HasDiskImage", "yes"); } } if (this.helpDirectoryFieldSet) { writer.WriteAttributeString("HelpDirectory", this.helpDirectoryField); } if (this.hiddenFieldSet) { if ((this.hiddenField == YesNoType.no)) { writer.WriteAttributeString("Hidden", "no"); } if ((this.hiddenField == YesNoType.yes)) { writer.WriteAttributeString("Hidden", "yes"); } } if (this.languageFieldSet) { writer.WriteAttributeString("Language", this.languageField.ToString(CultureInfo.InvariantCulture)); } if (this.majorVersionFieldSet) { writer.WriteAttributeString("MajorVersion", this.majorVersionField.ToString(CultureInfo.InvariantCulture)); } if (this.minorVersionFieldSet) { writer.WriteAttributeString("MinorVersion", this.minorVersionField.ToString(CultureInfo.InvariantCulture)); } if (this.resourceIdFieldSet) { writer.WriteAttributeString("ResourceId", this.resourceIdField.ToString(CultureInfo.InvariantCulture)); } if (this.restrictedFieldSet) { if ((this.restrictedField == YesNoType.no)) { writer.WriteAttributeString("Restricted", "no"); } if ((this.restrictedField == YesNoType.yes)) { writer.WriteAttributeString("Restricted", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } if (("Control" == name)) { this.controlField = Enums.ParseYesNoType(value); this.controlFieldSet = true; } if (("Cost" == name)) { this.costField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.costFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("HasDiskImage" == name)) { this.hasDiskImageField = Enums.ParseYesNoType(value); this.hasDiskImageFieldSet = true; } if (("HelpDirectory" == name)) { this.helpDirectoryField = value; this.helpDirectoryFieldSet = true; } if (("Hidden" == name)) { this.hiddenField = Enums.ParseYesNoType(value); this.hiddenFieldSet = true; } if (("Language" == name)) { this.languageField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.languageFieldSet = true; } if (("MajorVersion" == name)) { this.majorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.majorVersionFieldSet = true; } if (("MinorVersion" == name)) { this.minorVersionField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.minorVersionFieldSet = true; } if (("ResourceId" == name)) { this.resourceIdField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.resourceIdFieldSet = true; } if (("Restricted" == name)) { this.restrictedField = Enums.ParseYesNoType(value); this.restrictedFieldSet = true; } } } /// /// ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ProgId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string descriptionField; private bool descriptionFieldSet; private string iconField; private bool iconFieldSet; private int iconIndexField; private bool iconIndexFieldSet; private YesNoType advertiseField; private bool advertiseFieldSet; private string noOpenField; private bool noOpenFieldSet; private ISchemaElement parentElement; public ProgId() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ProgId))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Extension))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// For an advertised ProgId, the Id of an Icon element. For a non-advertised ProgId, this is the Id of a file containing an icon resource. /// public string Icon { get { return this.iconField; } set { this.iconFieldSet = true; this.iconField = value; } } public int IconIndex { get { return this.iconIndexField; } set { this.iconIndexFieldSet = true; this.iconIndexField = value; } } public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } /// /// Specifies that the associated ProgId should not be opened by users. The value is presented as a warning to users. An empty string is also valid for this attribute. /// public string NoOpen { get { return this.noOpenField; } set { this.noOpenFieldSet = true; this.noOpenField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ProgId" == childName)) { childValue = new ProgId(); } if (("Extension" == childName)) { childValue = new Extension(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ProgId", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.iconFieldSet) { writer.WriteAttributeString("Icon", this.iconField); } if (this.iconIndexFieldSet) { writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); } if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } if (this.noOpenFieldSet) { writer.WriteAttributeString("NoOpen", this.noOpenField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("Icon" == name)) { this.iconField = value; this.iconFieldSet = true; } if (("IconIndex" == name)) { this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.iconIndexFieldSet = true; } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } if (("NoOpen" == name)) { this.noOpenField = value; this.noOpenFieldSet = true; } } } /// /// Application ID containing DCOM information for the associated application GUID. /// If this element is nested under a Fragment, Module, or Package element, it must be /// advertised. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AppId : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private YesNoType activateAtStorageField; private bool activateAtStorageFieldSet; private YesNoType advertiseField; private bool advertiseFieldSet; private string descriptionField; private bool descriptionFieldSet; private string dllSurrogateField; private bool dllSurrogateFieldSet; private string idField; private bool idFieldSet; private string localServiceField; private bool localServiceFieldSet; private string remoteServerNameField; private bool remoteServerNameFieldSet; private YesNoType runAsInteractiveUserField; private bool runAsInteractiveUserFieldSet; private string serviceParametersField; private bool serviceParametersFieldSet; private ISchemaElement parentElement; public AppId() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Set this value to 'yes' to configure the client to activate on the same system as persistent storage. /// public YesNoType ActivateAtStorage { get { return this.activateAtStorageField; } set { this.activateAtStorageFieldSet = true; this.activateAtStorageField = value; } } /// /// Set this value to 'yes' in order to create a normal AppId table row. Set this value to 'no' in order to /// generate Registry rows that perform similar registration (without the often problematic Windows Installer /// advertising behavior). /// public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } /// /// Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Set this value to specify that the class is a DLL that is to be activated in a surrogate EXE /// process, and the surrogate process to be used is the path of a surrogate EXE file specified by the value. /// public string DllSurrogate { get { return this.dllSurrogateField; } set { this.dllSurrogateFieldSet = true; this.dllSurrogateField = value; } } /// /// Set this value to the AppID GUID that corresponds to the named executable. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set this value to the name of a service to allow the object to be installed as a Win32 service. /// public string LocalService { get { return this.localServiceField; } set { this.localServiceFieldSet = true; this.localServiceField = value; } } /// /// Set this value to the name of the remote server to configure the client to request the object /// be run at a particular machine whenever an activation function is called for which a COSERVERINFO /// structure is not specified. /// public string RemoteServerName { get { return this.remoteServerNameField; } set { this.remoteServerNameFieldSet = true; this.remoteServerNameField = value; } } /// /// Set this value to 'yes' to configure a class to run under the identity of the user currently /// logged on and connected to the interactive desktop when activated by a remote client without /// being written as a Win32 service. /// public YesNoType RunAsInteractiveUser { get { return this.runAsInteractiveUserField; } set { this.runAsInteractiveUserFieldSet = true; this.runAsInteractiveUserField = value; } } /// /// Set this value to the parameters to be passed to a LocalService on invocation. /// public string ServiceParameters { get { return this.serviceParametersField; } set { this.serviceParametersFieldSet = true; this.serviceParametersField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Class" == childName)) { childValue = new Class(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AppId", "http://wixtoolset.org/schemas/v4/wxs"); if (this.activateAtStorageFieldSet) { if ((this.activateAtStorageField == YesNoType.no)) { writer.WriteAttributeString("ActivateAtStorage", "no"); } if ((this.activateAtStorageField == YesNoType.yes)) { writer.WriteAttributeString("ActivateAtStorage", "yes"); } } if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.dllSurrogateFieldSet) { writer.WriteAttributeString("DllSurrogate", this.dllSurrogateField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.localServiceFieldSet) { writer.WriteAttributeString("LocalService", this.localServiceField); } if (this.remoteServerNameFieldSet) { writer.WriteAttributeString("RemoteServerName", this.remoteServerNameField); } if (this.runAsInteractiveUserFieldSet) { if ((this.runAsInteractiveUserField == YesNoType.no)) { writer.WriteAttributeString("RunAsInteractiveUser", "no"); } if ((this.runAsInteractiveUserField == YesNoType.yes)) { writer.WriteAttributeString("RunAsInteractiveUser", "yes"); } } if (this.serviceParametersFieldSet) { writer.WriteAttributeString("ServiceParameters", this.serviceParametersField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("ActivateAtStorage" == name)) { this.activateAtStorageField = Enums.ParseYesNoType(value); this.activateAtStorageFieldSet = true; } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("DllSurrogate" == name)) { this.dllSurrogateField = value; this.dllSurrogateFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("LocalService" == name)) { this.localServiceField = value; this.localServiceFieldSet = true; } if (("RemoteServerName" == name)) { this.remoteServerNameField = value; this.remoteServerNameFieldSet = true; } if (("RunAsInteractiveUser" == name)) { this.runAsInteractiveUserField = Enums.ParseYesNoType(value); this.runAsInteractiveUserFieldSet = true; } if (("ServiceParameters" == name)) { this.serviceParametersField = value; this.serviceParametersFieldSet = true; } } } /// /// COM Class registration for parent Component. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Class : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ContextType contextField; private bool contextFieldSet; private string descriptionField; private bool descriptionFieldSet; private string appIdField; private bool appIdFieldSet; private string iconField; private bool iconFieldSet; private int iconIndexField; private bool iconIndexFieldSet; private string handlerField; private bool handlerFieldSet; private string argumentField; private bool argumentFieldSet; private YesNoType relativePathField; private bool relativePathFieldSet; private YesNoType advertiseField; private bool advertiseFieldSet; private ThreadingModelType threadingModelField; private bool threadingModelFieldSet; private string versionField; private bool versionFieldSet; private YesNoType insertableField; private bool insertableFieldSet; private YesNoType programmableField; private bool programmableFieldSet; private string foreignServerField; private bool foreignServerFieldSet; private string serverField; private bool serverFieldSet; private YesNoType shortPathField; private bool shortPathFieldSet; private YesNoType safeForScriptingField; private bool safeForScriptingFieldSet; private YesNoType safeForInitializingField; private bool safeForInitializingFieldSet; private YesNoType controlField; private bool controlFieldSet; private ISchemaElement parentElement; public Class() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileTypeMask))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The Class identifier (CLSID) of a COM server. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The server context(s) for this COM server. This attribute is optional for VB6 libraries that are marked "PublicNotCreateable". /// Class elements marked Advertised must specify at least one server context. It is most common for there to be a single value /// for the Context attribute. /// public ContextType Context { get { return this.contextField; } set { this.contextFieldSet = true; this.contextField = value; } } /// /// Localized description associated with the Class ID and Program ID. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// This attribute is only allowed when a Class is advertised. Using this attribute will reference an Application ID /// containing DCOM information for the associated application GUID. The value must correspond to an AppId/@Id of an /// AppId element nested under a Fragment, Module, or Package element. To associate an AppId with a non-advertised /// class, nest the class within a parent AppId element. /// public string AppId { get { return this.appIdField; } set { this.appIdFieldSet = true; this.appIdField = value; } } /// /// The file providing the icon associated with this CLSID. Reference to an Icon element /// (should match the Id attribute of an Icon element). This is currently not supported if the /// value of the Advertise attribute is "no". /// public string Icon { get { return this.iconField; } set { this.iconFieldSet = true; this.iconField = value; } } /// /// Icon index into the icon file. /// public int IconIndex { get { return this.iconIndexField; } set { this.iconIndexFieldSet = true; this.iconIndexField = value; } } /// /// The default inproc handler. May be optionally provided only for Context = LocalServer or /// LocalServer32. Value of "1" creates a 16-bit InprocHandler (appearing as the InprocHandler /// value). Value of "2" creates a 32-bit InprocHandler (appearing as the InprocHandler32 value). /// Value of "3" creates 16-bit as well as 32-bit InprocHandlers. A non-numeric value is treated /// as a system file that serves as the 32-bit InprocHandler (appearing as the InprocHandler32 value). /// public string Handler { get { return this.handlerField; } set { this.handlerFieldSet = true; this.handlerField = value; } } /// /// This column is optional only when the Context column is set to "LocalServer" /// or "LocalServer32" server context. The text is registered as the argument against /// the OLE server and is used by OLE for invoking the server. Note that the resolution /// of properties in the Argument field is limited. A property formatted as [Property] in /// this field can only be resolved if the property already has the intended value when /// the component owning the class is installed. For example, for the argument "[#MyDoc.doc]" /// to resolve to the correct value, the same process must be installing the file MyDoc.doc and the /// component that owns the class. /// public string Argument { get { return this.argumentField; } set { this.argumentFieldSet = true; this.argumentField = value; } } /// /// When the value is "yes", the bare file name can be used for COM servers. The installer /// registers the file name only instead of the complete path. This enables the server in /// the current directory to take precedence and allows multiple copies of the same component. /// public YesNoType RelativePath { get { return this.relativePathField; } set { this.relativePathFieldSet = true; this.relativePathField = value; } } /// /// Set this value to "yes" in order to create a normal Class table row. Set this value to /// "no" in order to generate Registry rows that perform similar registration (without the /// often problematic Windows Installer advertising behavior). /// public YesNoType Advertise { get { return this.advertiseField; } set { this.advertiseFieldSet = true; this.advertiseField = value; } } /// /// Threading model for the CLSID. /// public ThreadingModelType ThreadingModel { get { return this.threadingModelField; } set { this.threadingModelFieldSet = true; this.threadingModelField = value; } } /// /// Version for the CLSID. /// public string Version { get { return this.versionField; } set { this.versionFieldSet = true; this.versionField = value; } } /// /// Specifies the CLSID may be insertable. /// public YesNoType Insertable { get { return this.insertableField; } set { this.insertableFieldSet = true; this.insertableField = value; } } /// /// Specifies the CLSID may be programmable. /// public YesNoType Programmable { get { return this.programmableField; } set { this.programmableFieldSet = true; this.programmableField = value; } } /// /// May only be specified if the value of the Advertise attribute is "no" and Server has not been specified. In addition, it may only /// be used when the Class element is directly under the Component element. The value can be /// that of an registry type (REG_SZ). This attribute should be used to specify foreign servers, such as mscoree.dll if needed. /// public string ForeignServer { get { return this.foreignServerField; } set { this.foreignServerFieldSet = true; this.foreignServerField = value; } } /// /// May only be specified if the value of the Advertise attribute is "no" and the ForeignServer attribute is not specified. File Id of the /// COM server file. If this element is nested under a File element, this value defaults to /// the value of the parent File/@Id. /// public string Server { get { return this.serverField; } set { this.serverFieldSet = true; this.serverField = value; } } /// /// Specifies whether or not to use the short path for the COM server. This can only apply when Advertise is set to 'no'. The default is 'no' meaning that it will use the long file name for the COM server. /// public YesNoType ShortPath { get { return this.shortPathField; } set { this.shortPathFieldSet = true; this.shortPathField = value; } } /// /// May only be specified if the value of the Advertise attribute is "no". /// public YesNoType SafeForScripting { get { return this.safeForScriptingField; } set { this.safeForScriptingFieldSet = true; this.safeForScriptingField = value; } } /// /// May only be specified if the value of the Advertise attribute is "no". /// public YesNoType SafeForInitializing { get { return this.safeForInitializingField; } set { this.safeForInitializingFieldSet = true; this.safeForInitializingField = value; } } /// /// Set this attribute's value to 'yes' to identify an object as an ActiveX Control. The default value is 'no'. /// public YesNoType Control { get { return this.controlField; } set { this.controlFieldSet = true; this.controlField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ProgId" == childName)) { childValue = new ProgId(); } if (("FileTypeMask" == childName)) { childValue = new FileTypeMask(); } if (("Interface" == childName)) { childValue = new Interface(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Tries to parse a ContextType from a string. /// public static bool TryParseContextType(string value, out ContextType parsedValue) { parsedValue = ContextType.None; if (string.IsNullOrEmpty(value)) { return false; } string[] splitValue = value.Split(" \t\r\n".ToCharArray(), System.StringSplitOptions.RemoveEmptyEntries); for (System.Collections.IEnumerator enumerator = splitValue.GetEnumerator(); enumerator.MoveNext(); ) { string currentValue = ((string)(enumerator.Current)); if (("LocalServer" == currentValue)) { parsedValue = (parsedValue | ContextType.LocalServer); } else { if (("LocalServer32" == currentValue)) { parsedValue = (parsedValue | ContextType.LocalServer32); } else { if (("InprocServer" == currentValue)) { parsedValue = (parsedValue | ContextType.InprocServer); } else { if (("InprocServer32" == currentValue)) { parsedValue = (parsedValue | ContextType.InprocServer32); } else { parsedValue = ContextType.None; return false; } } } } } return true; } /// /// Parses a ThreadingModelType from a string. /// public static ThreadingModelType ParseThreadingModelType(string value) { ThreadingModelType parsedValue; Class.TryParseThreadingModelType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ThreadingModelType from a string. /// public static bool TryParseThreadingModelType(string value, out ThreadingModelType parsedValue) { parsedValue = ThreadingModelType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("apartment" == value)) { parsedValue = ThreadingModelType.apartment; } else { if (("free" == value)) { parsedValue = ThreadingModelType.free; } else { if (("both" == value)) { parsedValue = ThreadingModelType.both; } else { if (("neutral" == value)) { parsedValue = ThreadingModelType.neutral; } else { if (("single" == value)) { parsedValue = ThreadingModelType.single; } else { if (("rental" == value)) { parsedValue = ThreadingModelType.rental; } else { parsedValue = ThreadingModelType.IllegalValue; return false; } } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Class", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.contextFieldSet) { string outputValue = ""; if (((this.contextField & ContextType.LocalServer) != 0)) { if ((outputValue.Length != 0)) { outputValue = (outputValue + " "); } outputValue = (outputValue + "LocalServer"); } if (((this.contextField & ContextType.LocalServer32) != 0)) { if ((outputValue.Length != 0)) { outputValue = (outputValue + " "); } outputValue = (outputValue + "LocalServer32"); } if (((this.contextField & ContextType.InprocServer) != 0)) { if ((outputValue.Length != 0)) { outputValue = (outputValue + " "); } outputValue = (outputValue + "InprocServer"); } if (((this.contextField & ContextType.InprocServer32) != 0)) { if ((outputValue.Length != 0)) { outputValue = (outputValue + " "); } outputValue = (outputValue + "InprocServer32"); } writer.WriteAttributeString("Context", outputValue); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.appIdFieldSet) { writer.WriteAttributeString("AppId", this.appIdField); } if (this.iconFieldSet) { writer.WriteAttributeString("Icon", this.iconField); } if (this.iconIndexFieldSet) { writer.WriteAttributeString("IconIndex", this.iconIndexField.ToString(CultureInfo.InvariantCulture)); } if (this.handlerFieldSet) { writer.WriteAttributeString("Handler", this.handlerField); } if (this.argumentFieldSet) { writer.WriteAttributeString("Argument", this.argumentField); } if (this.relativePathFieldSet) { if ((this.relativePathField == YesNoType.no)) { writer.WriteAttributeString("RelativePath", "no"); } if ((this.relativePathField == YesNoType.yes)) { writer.WriteAttributeString("RelativePath", "yes"); } } if (this.advertiseFieldSet) { if ((this.advertiseField == YesNoType.no)) { writer.WriteAttributeString("Advertise", "no"); } if ((this.advertiseField == YesNoType.yes)) { writer.WriteAttributeString("Advertise", "yes"); } } if (this.threadingModelFieldSet) { if ((this.threadingModelField == ThreadingModelType.apartment)) { writer.WriteAttributeString("ThreadingModel", "apartment"); } if ((this.threadingModelField == ThreadingModelType.free)) { writer.WriteAttributeString("ThreadingModel", "free"); } if ((this.threadingModelField == ThreadingModelType.both)) { writer.WriteAttributeString("ThreadingModel", "both"); } if ((this.threadingModelField == ThreadingModelType.neutral)) { writer.WriteAttributeString("ThreadingModel", "neutral"); } if ((this.threadingModelField == ThreadingModelType.single)) { writer.WriteAttributeString("ThreadingModel", "single"); } if ((this.threadingModelField == ThreadingModelType.rental)) { writer.WriteAttributeString("ThreadingModel", "rental"); } } if (this.versionFieldSet) { writer.WriteAttributeString("Version", this.versionField); } if (this.insertableFieldSet) { if ((this.insertableField == YesNoType.no)) { writer.WriteAttributeString("Insertable", "no"); } if ((this.insertableField == YesNoType.yes)) { writer.WriteAttributeString("Insertable", "yes"); } } if (this.programmableFieldSet) { if ((this.programmableField == YesNoType.no)) { writer.WriteAttributeString("Programmable", "no"); } if ((this.programmableField == YesNoType.yes)) { writer.WriteAttributeString("Programmable", "yes"); } } if (this.foreignServerFieldSet) { writer.WriteAttributeString("ForeignServer", this.foreignServerField); } if (this.serverFieldSet) { writer.WriteAttributeString("Server", this.serverField); } if (this.shortPathFieldSet) { if ((this.shortPathField == YesNoType.no)) { writer.WriteAttributeString("ShortPath", "no"); } if ((this.shortPathField == YesNoType.yes)) { writer.WriteAttributeString("ShortPath", "yes"); } } if (this.safeForScriptingFieldSet) { if ((this.safeForScriptingField == YesNoType.no)) { writer.WriteAttributeString("SafeForScripting", "no"); } if ((this.safeForScriptingField == YesNoType.yes)) { writer.WriteAttributeString("SafeForScripting", "yes"); } } if (this.safeForInitializingFieldSet) { if ((this.safeForInitializingField == YesNoType.no)) { writer.WriteAttributeString("SafeForInitializing", "no"); } if ((this.safeForInitializingField == YesNoType.yes)) { writer.WriteAttributeString("SafeForInitializing", "yes"); } } if (this.controlFieldSet) { if ((this.controlField == YesNoType.no)) { writer.WriteAttributeString("Control", "no"); } if ((this.controlField == YesNoType.yes)) { writer.WriteAttributeString("Control", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Context" == name)) { Class.TryParseContextType(value, out this.contextField); this.contextFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("AppId" == name)) { this.appIdField = value; this.appIdFieldSet = true; } if (("Icon" == name)) { this.iconField = value; this.iconFieldSet = true; } if (("IconIndex" == name)) { this.iconIndexField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.iconIndexFieldSet = true; } if (("Handler" == name)) { this.handlerField = value; this.handlerFieldSet = true; } if (("Argument" == name)) { this.argumentField = value; this.argumentFieldSet = true; } if (("RelativePath" == name)) { this.relativePathField = Enums.ParseYesNoType(value); this.relativePathFieldSet = true; } if (("Advertise" == name)) { this.advertiseField = Enums.ParseYesNoType(value); this.advertiseFieldSet = true; } if (("ThreadingModel" == name)) { this.threadingModelField = Class.ParseThreadingModelType(value); this.threadingModelFieldSet = true; } if (("Version" == name)) { this.versionField = value; this.versionFieldSet = true; } if (("Insertable" == name)) { this.insertableField = Enums.ParseYesNoType(value); this.insertableFieldSet = true; } if (("Programmable" == name)) { this.programmableField = Enums.ParseYesNoType(value); this.programmableFieldSet = true; } if (("ForeignServer" == name)) { this.foreignServerField = value; this.foreignServerFieldSet = true; } if (("Server" == name)) { this.serverField = value; this.serverFieldSet = true; } if (("ShortPath" == name)) { this.shortPathField = Enums.ParseYesNoType(value); this.shortPathFieldSet = true; } if (("SafeForScripting" == name)) { this.safeForScriptingField = Enums.ParseYesNoType(value); this.safeForScriptingFieldSet = true; } if (("SafeForInitializing" == name)) { this.safeForInitializingField = Enums.ParseYesNoType(value); this.safeForInitializingFieldSet = true; } if (("Control" == name)) { this.controlField = Enums.ParseYesNoType(value); this.controlFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] [Flags()] public enum ContextType { None = 0, /// /// A 16-bit local server application. /// LocalServer = 1, /// /// A 32-bit local server application. /// LocalServer32 = 2, /// /// A 16-bit in-process server DLL. /// InprocServer = 4, /// /// A 32-bit in-process server DLL. /// InprocServer32 = 8, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ThreadingModelType { IllegalValue = int.MaxValue, NotSet = -1, apartment, free, both, neutral, single, rental, } } /// /// COM Interface registration for parent TypeLib. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Interface : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string baseInterfaceField; private bool baseInterfaceFieldSet; private string proxyStubClassIdField; private bool proxyStubClassIdFieldSet; private string proxyStubClassId32Field; private bool proxyStubClassId32FieldSet; private int numMethodsField; private bool numMethodsFieldSet; private YesNoType versionedField; private bool versionedFieldSet; private ISchemaElement parentElement; /// /// GUID identifier for COM Interface. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Name for COM Interface. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Identifies the interface from which the current interface is derived. /// public string BaseInterface { get { return this.baseInterfaceField; } set { this.baseInterfaceFieldSet = true; this.baseInterfaceField = value; } } /// /// GUID CLSID for proxy stub to COM Interface. /// public string ProxyStubClassId { get { return this.proxyStubClassIdField; } set { this.proxyStubClassIdFieldSet = true; this.proxyStubClassIdField = value; } } /// /// GUID CLSID for 32-bit proxy stub to COM Interface. /// public string ProxyStubClassId32 { get { return this.proxyStubClassId32Field; } set { this.proxyStubClassId32FieldSet = true; this.proxyStubClassId32Field = value; } } /// /// Number of methods implemented on COM Interface. /// public int NumMethods { get { return this.numMethodsField; } set { this.numMethodsFieldSet = true; this.numMethodsField = value; } } /// /// Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. /// public YesNoType Versioned { get { return this.versionedField; } set { this.versionedFieldSet = true; this.versionedField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Interface", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.baseInterfaceFieldSet) { writer.WriteAttributeString("BaseInterface", this.baseInterfaceField); } if (this.proxyStubClassIdFieldSet) { writer.WriteAttributeString("ProxyStubClassId", this.proxyStubClassIdField); } if (this.proxyStubClassId32FieldSet) { writer.WriteAttributeString("ProxyStubClassId32", this.proxyStubClassId32Field); } if (this.numMethodsFieldSet) { writer.WriteAttributeString("NumMethods", this.numMethodsField.ToString(CultureInfo.InvariantCulture)); } if (this.versionedFieldSet) { if ((this.versionedField == YesNoType.no)) { writer.WriteAttributeString("Versioned", "no"); } if ((this.versionedField == YesNoType.yes)) { writer.WriteAttributeString("Versioned", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("BaseInterface" == name)) { this.baseInterfaceField = value; this.baseInterfaceFieldSet = true; } if (("ProxyStubClassId" == name)) { this.proxyStubClassIdField = value; this.proxyStubClassIdFieldSet = true; } if (("ProxyStubClassId32" == name)) { this.proxyStubClassId32Field = value; this.proxyStubClassId32FieldSet = true; } if (("NumMethods" == name)) { this.numMethodsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.numMethodsFieldSet = true; } if (("Versioned" == name)) { this.versionedField = Enums.ParseYesNoType(value); this.versionedFieldSet = true; } } } /// /// FileType data for class Id registration. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FileTypeMask : ISchemaElement, ISetAttributes { private int offsetField; private bool offsetFieldSet; private string maskField; private bool maskFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. /// public int Offset { get { return this.offsetField; } set { this.offsetFieldSet = true; this.offsetField = value; } } /// /// Hex value that is AND'd against the bytes in the file at Offset. /// public string Mask { get { return this.maskField; } set { this.maskFieldSet = true; this.maskField = value; } } /// /// If the result of the AND'ing of Mask with the bytes in the file is Value, the file is a match for this File Type. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FileTypeMask", "http://wixtoolset.org/schemas/v4/wxs"); if (this.offsetFieldSet) { writer.WriteAttributeString("Offset", this.offsetField.ToString(CultureInfo.InvariantCulture)); } if (this.maskFieldSet) { writer.WriteAttributeString("Mask", this.maskField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Offset" == name)) { this.offsetField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.offsetFieldSet = true; } if (("Mask" == name)) { this.maskField = value; this.maskFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Service or group of services that must start before the parent service. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ServiceDependency : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType groupField; private bool groupFieldSet; private ISchemaElement parentElement; /// /// The value of this attribute should be one of the following: /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set to 'yes' to indicate that the value in the Id attribute is the name of a group of services. /// public YesNoType Group { get { return this.groupField; } set { this.groupFieldSet = true; this.groupField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ServiceDependency", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.groupFieldSet) { if ((this.groupField == YesNoType.no)) { writer.WriteAttributeString("Group", "no"); } if ((this.groupField == YesNoType.yes)) { writer.WriteAttributeString("Group", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Group" == name)) { this.groupField = Enums.ParseYesNoType(value); this.groupFieldSet = true; } } } /// /// Adds services for parent Component. Use the ServiceControl element to remove services. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ServiceInstall : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string displayNameField; private bool displayNameFieldSet; private TypeType typeField; private bool typeFieldSet; private YesNoType interactiveField; private bool interactiveFieldSet; private StartType startField; private bool startFieldSet; private ErrorControlType errorControlField; private bool errorControlFieldSet; private YesNoType vitalField; private bool vitalFieldSet; private string loadOrderGroupField; private bool loadOrderGroupFieldSet; private string accountField; private bool accountFieldSet; private string passwordField; private bool passwordFieldSet; private string argumentsField; private bool argumentsFieldSet; private string descriptionField; private bool descriptionFieldSet; private YesNoType eraseDescriptionField; private bool eraseDescriptionFieldSet; private ISchemaElement parentElement; public ServiceInstall() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PermissionEx))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceDependency))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for this service configuration. This value will default to the Name attribute if not /// specified. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This column is the string that gives the service name to install. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// This column is the localizable string that user interface programs use to identify the service. /// public string DisplayName { get { return this.displayNameField; } set { this.displayNameFieldSet = true; this.displayNameField = value; } } /// /// The Windows Installer does not currently support kernelDriver or systemDriver. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// Whether or not the service interacts with the desktop. /// public YesNoType Interactive { get { return this.interactiveField; } set { this.interactiveFieldSet = true; this.interactiveField = value; } } /// /// Determines when the service should be started. The Windows Installer does not support boot or system. /// public StartType Start { get { return this.startField; } set { this.startFieldSet = true; this.startField = value; } } /// /// Determines what action should be taken on an error. /// public ErrorControlType ErrorControl { get { return this.errorControlField; } set { this.errorControlFieldSet = true; this.errorControlField = value; } } /// /// The overall install should fail if this service fails to install. /// public YesNoType Vital { get { return this.vitalField; } set { this.vitalFieldSet = true; this.vitalField = value; } } /// /// The load ordering group that this service should be a part of. /// public string LoadOrderGroup { get { return this.loadOrderGroupField; } set { this.loadOrderGroupFieldSet = true; this.loadOrderGroupField = value; } } /// /// Fully qualified names must be used even for local accounts, e.g.: ".\LOCAL_ACCOUNT". Valid only when ServiceType is ownProcess. /// public string Account { get { return this.accountField; } set { this.accountFieldSet = true; this.accountField = value; } } /// /// The password for the account. Valid only when the account has a password. /// public string Password { get { return this.passwordField; } set { this.passwordFieldSet = true; this.passwordField = value; } } /// /// Contains any command line arguments or properties required to run the service. /// public string Arguments { get { return this.argumentsField; } set { this.argumentsFieldSet = true; this.argumentsField = value; } } /// /// Sets the description of the service. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. /// public YesNoType EraseDescription { get { return this.eraseDescriptionField; } set { this.eraseDescriptionFieldSet = true; this.eraseDescriptionField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("PermissionEx" == childName)) { childValue = new PermissionEx(); } if (("ServiceDependency" == childName)) { childValue = new ServiceDependency(); } if (("ServiceConfig" == childName)) { childValue = new ServiceConfig(); } if (("ServiceConfigFailureActions" == childName)) { childValue = new ServiceConfigFailureActions(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; ServiceInstall.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("ownProcess" == value)) { parsedValue = TypeType.ownProcess; } else { if (("shareProcess" == value)) { parsedValue = TypeType.shareProcess; } else { if (("kernelDriver" == value)) { parsedValue = TypeType.kernelDriver; } else { if (("systemDriver" == value)) { parsedValue = TypeType.systemDriver; } else { parsedValue = TypeType.IllegalValue; return false; } } } } return true; } /// /// Parses a StartType from a string. /// public static StartType ParseStartType(string value) { StartType parsedValue; ServiceInstall.TryParseStartType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a StartType from a string. /// public static bool TryParseStartType(string value, out StartType parsedValue) { parsedValue = StartType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("auto" == value)) { parsedValue = StartType.auto; } else { if (("demand" == value)) { parsedValue = StartType.demand; } else { if (("disabled" == value)) { parsedValue = StartType.disabled; } else { if (("boot" == value)) { parsedValue = StartType.boot; } else { if (("system" == value)) { parsedValue = StartType.system; } else { parsedValue = StartType.IllegalValue; return false; } } } } } return true; } /// /// Parses a ErrorControlType from a string. /// public static ErrorControlType ParseErrorControlType(string value) { ErrorControlType parsedValue; ServiceInstall.TryParseErrorControlType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ErrorControlType from a string. /// public static bool TryParseErrorControlType(string value, out ErrorControlType parsedValue) { parsedValue = ErrorControlType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("ignore" == value)) { parsedValue = ErrorControlType.ignore; } else { if (("normal" == value)) { parsedValue = ErrorControlType.normal; } else { if (("critical" == value)) { parsedValue = ErrorControlType.critical; } else { parsedValue = ErrorControlType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ServiceInstall", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.displayNameFieldSet) { writer.WriteAttributeString("DisplayName", this.displayNameField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.ownProcess)) { writer.WriteAttributeString("Type", "ownProcess"); } if ((this.typeField == TypeType.shareProcess)) { writer.WriteAttributeString("Type", "shareProcess"); } if ((this.typeField == TypeType.kernelDriver)) { writer.WriteAttributeString("Type", "kernelDriver"); } if ((this.typeField == TypeType.systemDriver)) { writer.WriteAttributeString("Type", "systemDriver"); } } if (this.interactiveFieldSet) { if ((this.interactiveField == YesNoType.no)) { writer.WriteAttributeString("Interactive", "no"); } if ((this.interactiveField == YesNoType.yes)) { writer.WriteAttributeString("Interactive", "yes"); } } if (this.startFieldSet) { if ((this.startField == StartType.auto)) { writer.WriteAttributeString("Start", "auto"); } if ((this.startField == StartType.demand)) { writer.WriteAttributeString("Start", "demand"); } if ((this.startField == StartType.disabled)) { writer.WriteAttributeString("Start", "disabled"); } if ((this.startField == StartType.boot)) { writer.WriteAttributeString("Start", "boot"); } if ((this.startField == StartType.system)) { writer.WriteAttributeString("Start", "system"); } } if (this.errorControlFieldSet) { if ((this.errorControlField == ErrorControlType.ignore)) { writer.WriteAttributeString("ErrorControl", "ignore"); } if ((this.errorControlField == ErrorControlType.normal)) { writer.WriteAttributeString("ErrorControl", "normal"); } if ((this.errorControlField == ErrorControlType.critical)) { writer.WriteAttributeString("ErrorControl", "critical"); } } if (this.vitalFieldSet) { if ((this.vitalField == YesNoType.no)) { writer.WriteAttributeString("Vital", "no"); } if ((this.vitalField == YesNoType.yes)) { writer.WriteAttributeString("Vital", "yes"); } } if (this.loadOrderGroupFieldSet) { writer.WriteAttributeString("LoadOrderGroup", this.loadOrderGroupField); } if (this.accountFieldSet) { writer.WriteAttributeString("Account", this.accountField); } if (this.passwordFieldSet) { writer.WriteAttributeString("Password", this.passwordField); } if (this.argumentsFieldSet) { writer.WriteAttributeString("Arguments", this.argumentsField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.eraseDescriptionFieldSet) { if ((this.eraseDescriptionField == YesNoType.no)) { writer.WriteAttributeString("EraseDescription", "no"); } if ((this.eraseDescriptionField == YesNoType.yes)) { writer.WriteAttributeString("EraseDescription", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("DisplayName" == name)) { this.displayNameField = value; this.displayNameFieldSet = true; } if (("Type" == name)) { this.typeField = ServiceInstall.ParseTypeType(value); this.typeFieldSet = true; } if (("Interactive" == name)) { this.interactiveField = Enums.ParseYesNoType(value); this.interactiveFieldSet = true; } if (("Start" == name)) { this.startField = ServiceInstall.ParseStartType(value); this.startFieldSet = true; } if (("ErrorControl" == name)) { this.errorControlField = ServiceInstall.ParseErrorControlType(value); this.errorControlFieldSet = true; } if (("Vital" == name)) { this.vitalField = Enums.ParseYesNoType(value); this.vitalFieldSet = true; } if (("LoadOrderGroup" == name)) { this.loadOrderGroupField = value; this.loadOrderGroupFieldSet = true; } if (("Account" == name)) { this.accountField = value; this.accountFieldSet = true; } if (("Password" == name)) { this.passwordField = value; this.passwordFieldSet = true; } if (("Arguments" == name)) { this.argumentsField = value; this.argumentsFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("EraseDescription" == name)) { this.eraseDescriptionField = Enums.ParseYesNoType(value); this.eraseDescriptionFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// A Win32 service that runs its own process. /// ownProcess, /// /// A Win32 service that shares a process. /// shareProcess, /// /// A kernel driver service. This value is not currently supported by the Windows Installer. /// kernelDriver, /// /// A file system driver service. This value is not currently supported by the Windows Installer. /// systemDriver, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum StartType { IllegalValue = int.MaxValue, NotSet = -1, /// /// The service will start during startup of the system. /// auto, /// /// The service will start when the service control manager calls the StartService function. /// demand, /// /// The service can no longer be started. /// disabled, /// /// The service is a device driver that will be started by the operating system boot loader. This value is not currently supported by the Windows Installer. /// boot, /// /// The service is a device driver that will be started by the IoInitSystem function. This value is not currently supported by the Windows Installer. /// system, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ErrorControlType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Logs the error and continues with the startup operation. /// ignore, /// /// Logs the error, displays a message box and continues the startup operation. /// normal, /// /// Logs the error if it is possible and the system is restarted with the last configuration known to be good. If the last-known-good configuration is being started, the startup operation fails. /// critical, } } /// /// Argument used in ServiceControl parent /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ServiceArgument : ISetAttributes, ISchemaElement { private ISchemaElement parentElement; private string contentField; private bool contentFieldSet; public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Argument used in ServiceControl parent /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ServiceArgument", "http://wixtoolset.org/schemas/v4/wxs"); if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } } /// /// Starts, stops, and removes services for parent Component. This element is used to control the state /// of a service installed by the MSI or MSM file by using the start, stop and remove attributes. /// For example, Start='install' Stop='both' Remove='uninstall' would mean: start the service on install, /// remove the service when the product is uninstalled, and stop the service both on install and uninstall. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ServiceControl : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private InstallUninstallType startField; private bool startFieldSet; private InstallUninstallType stopField; private bool stopFieldSet; private InstallUninstallType removeField; private bool removeFieldSet; private YesNoType waitField; private bool waitFieldSet; private ISchemaElement parentElement; public ServiceControl() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ServiceArgument))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Name of the service. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Specifies whether the service should be started by the StartServices action on install, uninstall or both. /// For 'install', the service will be started only when the parent component is being installed (msiInstallStateLocal or /// msiInstallStateSource); for 'uninstall', the service will be started only when the parent component /// is being removed (msiInstallStateAbsent); for 'both', the service will be started in both cases. /// public InstallUninstallType Start { get { return this.startField; } set { this.startFieldSet = true; this.startField = value; } } /// /// Specifies whether the service should be stopped by the StopServices action on install, uninstall or both. /// For 'install', the service will be stopped only when the parent component is being installed (msiInstallStateLocal or /// msiInstallStateSource); for 'uninstall', the service will be stopped only when the parent component /// is being removed (msiInstallStateAbsent); for 'both', the service will be stopped in both cases. /// public InstallUninstallType Stop { get { return this.stopField; } set { this.stopFieldSet = true; this.stopField = value; } } /// /// Specifies whether the service should be removed by the DeleteServices action on install, uninstall or both. /// For 'install', the service will be removed only when the parent component is being installed (msiInstallStateLocal or /// msiInstallStateSource); for 'uninstall', the service will be removed only when the parent component /// is being removed (msiInstallStateAbsent); for 'both', the service will be removed in both cases. /// public InstallUninstallType Remove { get { return this.removeField; } set { this.removeFieldSet = true; this.removeField = value; } } /// /// Specifies whether or not to wait for the service to complete before continuing. The default is 'yes'. /// public YesNoType Wait { get { return this.waitField; } set { this.waitFieldSet = true; this.waitField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ServiceArgument" == childName)) { childValue = new ServiceArgument(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ServiceControl", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.startFieldSet) { if ((this.startField == InstallUninstallType.install)) { writer.WriteAttributeString("Start", "install"); } if ((this.startField == InstallUninstallType.uninstall)) { writer.WriteAttributeString("Start", "uninstall"); } if ((this.startField == InstallUninstallType.both)) { writer.WriteAttributeString("Start", "both"); } } if (this.stopFieldSet) { if ((this.stopField == InstallUninstallType.install)) { writer.WriteAttributeString("Stop", "install"); } if ((this.stopField == InstallUninstallType.uninstall)) { writer.WriteAttributeString("Stop", "uninstall"); } if ((this.stopField == InstallUninstallType.both)) { writer.WriteAttributeString("Stop", "both"); } } if (this.removeFieldSet) { if ((this.removeField == InstallUninstallType.install)) { writer.WriteAttributeString("Remove", "install"); } if ((this.removeField == InstallUninstallType.uninstall)) { writer.WriteAttributeString("Remove", "uninstall"); } if ((this.removeField == InstallUninstallType.both)) { writer.WriteAttributeString("Remove", "both"); } } if (this.waitFieldSet) { if ((this.waitField == YesNoType.no)) { writer.WriteAttributeString("Wait", "no"); } if ((this.waitField == YesNoType.yes)) { writer.WriteAttributeString("Wait", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Start" == name)) { this.startField = Enums.ParseInstallUninstallType(value); this.startFieldSet = true; } if (("Stop" == name)) { this.stopField = Enums.ParseInstallUninstallType(value); this.stopFieldSet = true; } if (("Remove" == name)) { this.removeField = Enums.ParseInstallUninstallType(value); this.removeFieldSet = true; } if (("Wait" == name)) { this.waitField = Enums.ParseYesNoType(value); this.waitFieldSet = true; } } } /// /// Privilege required by service configured by ServiceConfig parent. Valid values are a /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RequiredPrivilege : ISetAttributes, ISchemaElement { private ISchemaElement parentElement; private string contentField; private bool contentFieldSet; public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Privilege required by service configured by ServiceConfig parent. Valid values are a /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RequiredPrivilege", "http://wixtoolset.org/schemas/v4/wxs"); if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } } /// /// Configures a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ServiceConfig : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string delayedAutoStartField; private bool delayedAutoStartFieldSet; private string failureActionsWhenField; private bool failureActionsWhenFieldSet; private string preShutdownDelayField; private bool preShutdownDelayFieldSet; private YesNoType onInstallField; private bool onInstallFieldSet; private YesNoType onReinstallField; private bool onReinstallFieldSet; private YesNoType onUninstallField; private bool onUninstallFieldSet; private string serviceNameField; private bool serviceNameFieldSet; private string serviceSidField; private bool serviceSidFieldSet; private ISchemaElement parentElement; public ServiceConfig() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RequiredPrivilege))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not /// specified. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This attribute specifies whether an auto-start service should delay its start until after all other auto-start /// services. This attribute only affects auto-start services. Allowed values are "yes", "no" or a Formatted property that /// resolves to "1" (for "yes") or "0" (for "no"). If this attribute is not present the setting is not configured. /// public string DelayedAutoStart { get { return this.delayedAutoStartField; } set { this.delayedAutoStartFieldSet = true; this.delayedAutoStartField = value; } } /// /// This attribute specifies when failure actions should be applied. Allowed values are "failedToStop", "failedToStopOrReturnedError" /// or a Formatted property that resolves to "1" (for "failedToStopOrReturnedError") or "0" (for "failedToStop"). If this attribute /// is not present the setting is not configured. /// public string FailureActionsWhen { get { return this.failureActionsWhenField; } set { this.failureActionsWhenFieldSet = true; this.failureActionsWhenField = value; } } /// /// This attribute specifies time in milliseconds that the Service Control Manager (SCM) waits after notifying the service of a system /// shutdown. If this attribute is not present the default value, 3 minutes, is used. /// public string PreShutdownDelay { get { return this.preShutdownDelayField; } set { this.preShutdownDelayFieldSet = true; this.preShutdownDelayField = value; } } /// /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall /// and OnUninstall. /// public YesNoType OnInstall { get { return this.onInstallField; } set { this.onInstallFieldSet = true; this.onInstallField = value; } } /// /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall /// and OnUninstall. /// public YesNoType OnReinstall { get { return this.onReinstallField; } set { this.onReinstallFieldSet = true; this.onReinstallField = value; } } /// /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall /// and OnReinstall. /// public YesNoType OnUninstall { get { return this.onUninstallField; } set { this.onUninstallFieldSet = true; this.onUninstallField = value; } } /// /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under /// a ServiceInstall element. /// public string ServiceName { get { return this.serviceNameField; } set { this.serviceNameFieldSet = true; this.serviceNameField = value; } } /// /// Specifies the service SID to apply to the service. Valid values are "none", "restricted", "unrestricted" or a Formatted property /// that resolves to "0" (for "none"), "3" (for "restricted") or "1" (for "unrestricted"). If this attribute is not present the /// setting is not configured. /// public string ServiceSid { get { return this.serviceSidField; } set { this.serviceSidFieldSet = true; this.serviceSidField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("RequiredPrivilege" == childName)) { childValue = new RequiredPrivilege(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ServiceConfig", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.delayedAutoStartFieldSet) { writer.WriteAttributeString("DelayedAutoStart", this.delayedAutoStartField); } if (this.failureActionsWhenFieldSet) { writer.WriteAttributeString("FailureActionsWhen", this.failureActionsWhenField); } if (this.preShutdownDelayFieldSet) { writer.WriteAttributeString("PreShutdownDelay", this.preShutdownDelayField); } if (this.onInstallFieldSet) { if ((this.onInstallField == YesNoType.no)) { writer.WriteAttributeString("OnInstall", "no"); } if ((this.onInstallField == YesNoType.yes)) { writer.WriteAttributeString("OnInstall", "yes"); } } if (this.onReinstallFieldSet) { if ((this.onReinstallField == YesNoType.no)) { writer.WriteAttributeString("OnReinstall", "no"); } if ((this.onReinstallField == YesNoType.yes)) { writer.WriteAttributeString("OnReinstall", "yes"); } } if (this.onUninstallFieldSet) { if ((this.onUninstallField == YesNoType.no)) { writer.WriteAttributeString("OnUninstall", "no"); } if ((this.onUninstallField == YesNoType.yes)) { writer.WriteAttributeString("OnUninstall", "yes"); } } if (this.serviceNameFieldSet) { writer.WriteAttributeString("ServiceName", this.serviceNameField); } if (this.serviceSidFieldSet) { writer.WriteAttributeString("ServiceSid", this.serviceSidField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("DelayedAutoStart" == name)) { this.delayedAutoStartField = value; this.delayedAutoStartFieldSet = true; } if (("FailureActionsWhen" == name)) { this.failureActionsWhenField = value; this.failureActionsWhenFieldSet = true; } if (("PreShutdownDelay" == name)) { this.preShutdownDelayField = value; this.preShutdownDelayFieldSet = true; } if (("OnInstall" == name)) { this.onInstallField = Enums.ParseYesNoType(value); this.onInstallFieldSet = true; } if (("OnReinstall" == name)) { this.onReinstallField = Enums.ParseYesNoType(value); this.onReinstallFieldSet = true; } if (("OnUninstall" == name)) { this.onUninstallField = Enums.ParseYesNoType(value); this.onUninstallFieldSet = true; } if (("ServiceName" == name)) { this.serviceNameField = value; this.serviceNameFieldSet = true; } if (("ServiceSid" == name)) { this.serviceSidField = value; this.serviceSidFieldSet = true; } } } /// /// Failure action for a ServiceConfigFailureActions element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Failure : ISchemaElement, ISetAttributes { private string actionField; private bool actionFieldSet; private string delayField; private bool delayFieldSet; private ISchemaElement parentElement; /// /// Specifies the action to take when the service fails. Valid values are "none", "restartComputer", "restartService", "runCommand" or a Formatted property /// that resolves to "0" (for "none"), "1" (for "restartService"), "2" (for "restartComputer") or "3" (for "runCommand"). /// public string Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// Specifies the time in milliseconds to wait before performing the value from the Action attribute. /// public string Delay { get { return this.delayField; } set { this.delayFieldSet = true; this.delayField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Failure", "http://wixtoolset.org/schemas/v4/wxs"); if (this.actionFieldSet) { writer.WriteAttributeString("Action", this.actionField); } if (this.delayFieldSet) { writer.WriteAttributeString("Delay", this.delayField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Action" == name)) { this.actionField = value; this.actionFieldSet = true; } if (("Delay" == name)) { this.delayField = value; this.delayFieldSet = true; } } } /// /// Configures the failure actions for a service being installed or one that already exists. This element's functionality is available starting with MSI 5.0. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ServiceConfigFailureActions : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string commandField; private bool commandFieldSet; private YesNoType onInstallField; private bool onInstallFieldSet; private YesNoType onReinstallField; private bool onReinstallFieldSet; private YesNoType onUninstallField; private bool onUninstallFieldSet; private string rebootMessageField; private bool rebootMessageFieldSet; private string resetPeriodField; private bool resetPeriodFieldSet; private string serviceNameField; private bool serviceNameFieldSet; private ISchemaElement parentElement; public ServiceConfigFailureActions() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Failure))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for this service configuration. This value will default to the ServiceName attribute if not /// specified. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This attribute specifies command to execute when a "runCommand" failure action hit. If an empty string is provided it clears /// the existing command. If this attribute is not present the setting is not changed. /// public string Command { get { return this.commandField; } set { this.commandFieldSet = true; this.commandField = value; } } /// /// Specifies whether to configure the service when the parent Component is installed. This attribute may be combined with OnReinstall /// and OnUninstall. /// public YesNoType OnInstall { get { return this.onInstallField; } set { this.onInstallFieldSet = true; this.onInstallField = value; } } /// /// Specifies whether to configure the service when the parent Component is reinstalled. This attribute may be combined with OnInstall /// and OnUninstall. /// public YesNoType OnReinstall { get { return this.onReinstallField; } set { this.onReinstallFieldSet = true; this.onReinstallField = value; } } /// /// Specifies whether to configure the service when the parent Component is uninstalled. This attribute may be combined with OnInstall /// and OnReinstall. /// public YesNoType OnUninstall { get { return this.onUninstallField; } set { this.onUninstallFieldSet = true; this.onUninstallField = value; } } /// /// Specifies the message to show for a reboot failure action. If an empty string is provided it clears any existing reboot message. If this /// attribute is not present the setting is not changed. /// public string RebootMessage { get { return this.rebootMessageField; } set { this.rebootMessageFieldSet = true; this.rebootMessageField = value; } } /// /// Specifies the time in seconds to reset the failure count. If this attribute is not present the failure count will not be reset. /// public string ResetPeriod { get { return this.resetPeriodField; } set { this.resetPeriodFieldSet = true; this.resetPeriodField = value; } } /// /// Specifies the name of the service to configure. This value will default to the ServiceInstall/@Name attribute when nested under /// a ServiceInstall element. /// public string ServiceName { get { return this.serviceNameField; } set { this.serviceNameFieldSet = true; this.serviceNameField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Failure" == childName)) { childValue = new Failure(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ServiceConfigFailureActions", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.commandFieldSet) { writer.WriteAttributeString("Command", this.commandField); } if (this.onInstallFieldSet) { if ((this.onInstallField == YesNoType.no)) { writer.WriteAttributeString("OnInstall", "no"); } if ((this.onInstallField == YesNoType.yes)) { writer.WriteAttributeString("OnInstall", "yes"); } } if (this.onReinstallFieldSet) { if ((this.onReinstallField == YesNoType.no)) { writer.WriteAttributeString("OnReinstall", "no"); } if ((this.onReinstallField == YesNoType.yes)) { writer.WriteAttributeString("OnReinstall", "yes"); } } if (this.onUninstallFieldSet) { if ((this.onUninstallField == YesNoType.no)) { writer.WriteAttributeString("OnUninstall", "no"); } if ((this.onUninstallField == YesNoType.yes)) { writer.WriteAttributeString("OnUninstall", "yes"); } } if (this.rebootMessageFieldSet) { writer.WriteAttributeString("RebootMessage", this.rebootMessageField); } if (this.resetPeriodFieldSet) { writer.WriteAttributeString("ResetPeriod", this.resetPeriodField); } if (this.serviceNameFieldSet) { writer.WriteAttributeString("ServiceName", this.serviceNameField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Command" == name)) { this.commandField = value; this.commandFieldSet = true; } if (("OnInstall" == name)) { this.onInstallField = Enums.ParseYesNoType(value); this.onInstallFieldSet = true; } if (("OnReinstall" == name)) { this.onReinstallField = Enums.ParseYesNoType(value); this.onReinstallFieldSet = true; } if (("OnUninstall" == name)) { this.onUninstallField = Enums.ParseYesNoType(value); this.onUninstallFieldSet = true; } if (("RebootMessage" == name)) { this.rebootMessageField = value; this.rebootMessageFieldSet = true; } if (("ResetPeriod" == name)) { this.resetPeriodField = value; this.resetPeriodFieldSet = true; } if (("ServiceName" == name)) { this.serviceNameField = value; this.serviceNameFieldSet = true; } } } /// /// Environment variables added or removed for the parent component. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Environment : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string valueField; private bool valueFieldSet; private string separatorField; private bool separatorFieldSet; private ActionType actionField; private bool actionFieldSet; private PartType partField; private bool partFieldSet; private YesNoType permanentField; private bool permanentFieldSet; private YesNoType systemField; private bool systemFieldSet; private ISchemaElement parentElement; /// /// Unique identifier for environment entry. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Name of the environment variable. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The value to set into the environment variable. /// If this attribute is not set, the environment variable is removed during installation if it exists on the machine. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// Optional attribute to change the separator used between values. By default a semicolon is used. /// public string Separator { get { return this.separatorField; } set { this.separatorFieldSet = true; this.separatorField = value; } } /// /// Specfies whether the environmental variable should be created, set or removed when the parent component is installed. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } public PartType Part { get { return this.partField; } set { this.partFieldSet = true; this.partField = value; } } /// /// Specifies that the environment variable should not be removed on uninstall. /// public YesNoType Permanent { get { return this.permanentField; } set { this.permanentFieldSet = true; this.permanentField = value; } } /// /// Specifies that the environment variable should be added to the system environment space. The default /// is 'no' which indicates the environment variable is added to the user environment space. /// public YesNoType System { get { return this.systemField; } set { this.systemFieldSet = true; this.systemField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; Environment.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("create" == value)) { parsedValue = ActionType.create; } else { if (("set" == value)) { parsedValue = ActionType.set; } else { if (("remove" == value)) { parsedValue = ActionType.remove; } else { parsedValue = ActionType.IllegalValue; return false; } } } return true; } /// /// Parses a PartType from a string. /// public static PartType ParsePartType(string value) { PartType parsedValue; Environment.TryParsePartType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a PartType from a string. /// public static bool TryParsePartType(string value, out PartType parsedValue) { parsedValue = PartType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("all" == value)) { parsedValue = PartType.all; } else { if (("first" == value)) { parsedValue = PartType.first; } else { if (("last" == value)) { parsedValue = PartType.last; } else { parsedValue = PartType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Environment", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.separatorFieldSet) { writer.WriteAttributeString("Separator", this.separatorField); } if (this.actionFieldSet) { if ((this.actionField == ActionType.create)) { writer.WriteAttributeString("Action", "create"); } if ((this.actionField == ActionType.set)) { writer.WriteAttributeString("Action", "set"); } if ((this.actionField == ActionType.remove)) { writer.WriteAttributeString("Action", "remove"); } } if (this.partFieldSet) { if ((this.partField == PartType.all)) { writer.WriteAttributeString("Part", "all"); } if ((this.partField == PartType.first)) { writer.WriteAttributeString("Part", "first"); } if ((this.partField == PartType.last)) { writer.WriteAttributeString("Part", "last"); } } if (this.permanentFieldSet) { if ((this.permanentField == YesNoType.no)) { writer.WriteAttributeString("Permanent", "no"); } if ((this.permanentField == YesNoType.yes)) { writer.WriteAttributeString("Permanent", "yes"); } } if (this.systemFieldSet) { if ((this.systemField == YesNoType.no)) { writer.WriteAttributeString("System", "no"); } if ((this.systemField == YesNoType.yes)) { writer.WriteAttributeString("System", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Separator" == name)) { this.separatorField = value; this.separatorFieldSet = true; } if (("Action" == name)) { this.actionField = Environment.ParseActionType(value); this.actionFieldSet = true; } if (("Part" == name)) { this.partField = Environment.ParsePartType(value); this.partFieldSet = true; } if (("Permanent" == name)) { this.permanentField = Enums.ParseYesNoType(value); this.permanentFieldSet = true; } if (("System" == name)) { this.systemField = Enums.ParseYesNoType(value); this.systemFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Creates the environment variable if it does not exist, then set it during installation. This has no effect on the value of the environment variable if it already exists. /// create, /// /// Creates the environment variable if it does not exist, and then set it during installation. If the environment variable exists, set it during the installation. /// set, /// /// Removes the environment variable during an installation. /// The installer only removes an environment variable during an installation if the name and value /// of the variable match the entries in the Name and Value attributes. /// If you want to remove an environment variable, regardless of its value, do not set the Value attribute. /// remove, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum PartType { IllegalValue = int.MaxValue, NotSet = -1, /// /// This value is the entire environmental variable. This is the default. /// all, /// /// This value is prefixed. /// first, /// /// This value is appended. /// last, } } /// /// Conditions for components, controls, features, and products. The condition is specified in the inner text of the element. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Condition : ISchemaElement, ISetAttributes { private ActionType actionField; private bool actionFieldSet; private int levelField; private bool levelFieldSet; private string messageField; private bool messageFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Used only under Control elements and is required. Allows specific actions to be applied to a control based /// on the result of this condition. /// public ActionType Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// Used only under Feature elements and is required. Allows modifying the level of a Feature based on the /// result of this condition. /// public int Level { get { return this.levelField; } set { this.levelFieldSet = true; this.levelField = value; } } /// /// Used only under Fragment or Package elements and is required. Set the value to the text to display when the /// condition fails and the installation must be terminated. /// public string Message { get { return this.messageField; } set { this.messageFieldSet = true; this.messageField = value; } } /// /// Under a Component element, the condition becomes the condition of the component. Under a Control element, /// the condition becomes a ControlCondition entry. Under a Feature element, the condition becomes a Condition /// entry. Under a Fragment or Package element, the condition becomes a LaunchCondition entry. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ActionType from a string. /// public static ActionType ParseActionType(string value) { ActionType parsedValue; Condition.TryParseActionType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ActionType from a string. /// public static bool TryParseActionType(string value, out ActionType parsedValue) { parsedValue = ActionType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("default" == value)) { parsedValue = ActionType.@default; } else { if (("enable" == value)) { parsedValue = ActionType.enable; } else { if (("disable" == value)) { parsedValue = ActionType.disable; } else { if (("hide" == value)) { parsedValue = ActionType.hide; } else { if (("show" == value)) { parsedValue = ActionType.show; } else { parsedValue = ActionType.IllegalValue; return false; } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Condition", "http://wixtoolset.org/schemas/v4/wxs"); if (this.actionFieldSet) { if ((this.actionField == ActionType.@default)) { writer.WriteAttributeString("Action", "default"); } if ((this.actionField == ActionType.enable)) { writer.WriteAttributeString("Action", "enable"); } if ((this.actionField == ActionType.disable)) { writer.WriteAttributeString("Action", "disable"); } if ((this.actionField == ActionType.hide)) { writer.WriteAttributeString("Action", "hide"); } if ((this.actionField == ActionType.show)) { writer.WriteAttributeString("Action", "show"); } } if (this.levelFieldSet) { writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); } if (this.messageFieldSet) { writer.WriteAttributeString("Message", this.messageField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Action" == name)) { this.actionField = Condition.ParseActionType(value); this.actionFieldSet = true; } if (("Level" == name)) { this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.levelFieldSet = true; } if (("Message" == name)) { this.messageField = value; this.messageFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ActionType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Set the Control as the default. Only used under Control elements. /// @default, /// /// Enable the Control. Only used under Control elements. /// enable, /// /// Disable the Control. Only used under Control elements. /// disable, /// /// Hide the Control. Only used under Control elements. /// hide, /// /// Display the Control. Only used under Control elements. /// show, } } /// /// Shared Component to be privately replicated in folder of parent Component /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IsolateComponent : ISchemaElement, ISetAttributes { private string sharedField; private bool sharedFieldSet; private ISchemaElement parentElement; /// /// Shared Component for this application Component. /// public string Shared { get { return this.sharedField; } set { this.sharedFieldSet = true; this.sharedField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IsolateComponent", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sharedFieldSet) { writer.WriteAttributeString("Shared", this.sharedField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Shared" == name)) { this.sharedField = value; this.sharedFieldSet = true; } } } /// /// Disk cost to reserve in a folder for running locally and/or from source. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ReserveCost : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string directoryField; private bool directoryFieldSet; private int runFromSourceField; private bool runFromSourceFieldSet; private int runLocalField; private bool runLocalFieldSet; private ISchemaElement parentElement; /// /// A primary key that uniquely identifies this ReserveCost entry. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Adds the amount of disk space specified in RunFromSource or RunLocal to the volume cost of the device containing the directory. /// If this attribute is not set, it will default to the directory of parent component. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// The number of bytes of disk space to reserve if the component is installed to run from source. /// public int RunFromSource { get { return this.runFromSourceField; } set { this.runFromSourceFieldSet = true; this.runFromSourceField = value; } } /// /// The number of bytes of disk space to reserve if the component is installed to run locally. /// public int RunLocal { get { return this.runLocalField; } set { this.runLocalFieldSet = true; this.runLocalField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ReserveCost", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.runFromSourceFieldSet) { writer.WriteAttributeString("RunFromSource", this.runFromSourceField.ToString(CultureInfo.InvariantCulture)); } if (this.runLocalFieldSet) { writer.WriteAttributeString("RunLocal", this.runLocalField.ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("RunFromSource" == name)) { this.runFromSourceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.runFromSourceFieldSet = true; } if (("RunLocal" == name)) { this.runLocalField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.runLocalFieldSet = true; } } } /// /// Component for parent Directory /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Component : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private int comPlusFlagsField; private bool comPlusFlagsFieldSet; private YesNoType disableRegistryReflectionField; private bool disableRegistryReflectionFieldSet; private string directoryField; private bool directoryFieldSet; private string diskIdField; private bool diskIdFieldSet; private string featureField; private bool featureFieldSet; private string guidField; private bool guidFieldSet; private YesNoType keyPathField; private bool keyPathFieldSet; private LocationType locationField; private bool locationFieldSet; private YesNoType multiInstanceField; private bool multiInstanceFieldSet; private YesNoType neverOverwriteField; private bool neverOverwriteFieldSet; private YesNoType permanentField; private bool permanentFieldSet; private YesNoType sharedField; private bool sharedFieldSet; private YesNoType sharedDllRefCountField; private bool sharedDllRefCountFieldSet; private YesNoType transitiveField; private bool transitiveFieldSet; private YesNoType uninstallWhenSupersededField; private bool uninstallWhenSupersededFieldSet; private YesNoType win64Field; private bool win64FieldSet; private ISchemaElement parentElement; public Component() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppId))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Category))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Class))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CopyFile))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolder))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Environment))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Extension))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(File))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IniFile))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Interface))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponent))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDataSource))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCDriver))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ODBCTranslator))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgId))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Registry))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryKey))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegistryValue))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFile))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolder))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryKey))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValue))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ReserveCost))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceControl))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfig))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceConfigFailureActions))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ServiceInstall))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Shortcut))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TypeLib))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Component identifier; this is the primary key for identifying components. If omitted, /// the compiler defaults the identifier to the identifier of the resource that is the /// explicit keypath of the component (for example, a child File element with KeyPath /// attribute with value 'yes'. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set this attribute to create a ComPlus entry. The value should be the export flags used /// during the generation of the .msi file. For more information see the COM+ documentation /// in the Platform SDK. /// public int ComPlusFlags { get { return this.comPlusFlagsField; } set { this.comPlusFlagsFieldSet = true; this.comPlusFlagsField = value; } } /// /// Set this attribute to 'yes' in order to disable registry reflection on all existing and /// new registry keys affected by this component. /// When set to 'yes', the Windows Installer calls the RegDisableReflectionKey on each key /// being accessed by the component. /// This bit is available with Windows Installer version 4.0 and is ignored on 32-bit systems. /// public YesNoType DisableRegistryReflection { get { return this.disableRegistryReflectionField; } set { this.disableRegistryReflectionFieldSet = true; this.disableRegistryReflectionField = value; } } /// /// Sets the Directory of the Component. If this element is nested under a Directory element, /// this value defaults to the value of the parent Directory/@Id. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// This attribute provides a default DiskId attribute for all child File elements. Specifying /// the DiskId on a Component element will override any DiskId attributes set by parent Directory /// or DirectoryRef elements. See the File element's DiskId attribute for more information about /// the purpose of the DiskId. /// public string DiskId { get { return this.diskIdField; } set { this.diskIdFieldSet = true; this.diskIdField = value; } } /// /// Identifies a feature to which this component belongs, as a shorthand for a child /// ComponentRef element of the Feature element. The value of this attribute should /// correspond to the Id attribute of a Feature element authored elsewhere. Note that /// a single component can belong to multiple features but this attribute allows you /// to specify only a single feature. /// public string Feature { get { return this.featureField; } set { this.featureFieldSet = true; this.featureField = value; } } /// /// This value should be a guid that uniquely identifies this component's contents, language, platform, and version. /// If omitted, the default value is '*' which indicates that the linker should generate a stable guid. /// Generatable guids are supported only for components with a single file as the component's keypath /// or no files and a registry value as the keypath. /// It's also possible to set the value to an empty string to specify an unmanaged component. /// Unmanaged components are a security vulnerability because the component cannot be removed or repaired /// by Windows Installer (it is essentially an unpatchable, permanent component). Therefore, a guid should /// always be specified for any component which contains resources that may need to be patched in the future. /// public string Guid { get { return this.guidField; } set { this.guidFieldSet = true; this.guidField = value; } } /// /// If this attribute's value is set to 'yes', then the Directory of this Component is used /// as the KeyPath. To set a Registry value or File as the KeyPath of a component, set the /// KeyPath attribute to 'yes' on one of those child elements. If KeyPath is not set to 'yes' for the /// Component or for a child Registry value or File, WiX will look at the child elements under the /// Component in sequential order and try to automatically select one of them as a key path. Allowing /// WiX to automatically select a key path can be dangerous because adding or removing child elements /// under the Component can inadvertantly cause the key path to change, which can lead to /// installation problems. /// public YesNoType KeyPath { get { return this.keyPathField; } set { this.keyPathFieldSet = true; this.keyPathField = value; } } /// /// Optional value that specifies the location that the component can be run from. /// public LocationType Location { get { return this.locationField; } set { this.locationFieldSet = true; this.locationField = value; } } /// /// If this attribute is set to 'yes', a new Component/@Guid will be generated for each /// instance transform. Ensure that all of the resources contained in a multi-instance /// Component will be installed to different paths based on the instance Property; otherwise, /// the Component Rules will be violated. /// public YesNoType MultiInstance { get { return this.multiInstanceField; } set { this.multiInstanceFieldSet = true; this.multiInstanceField = value; } } /// /// If this attribute is set to 'yes', the installer does not install or reinstall the /// component if a key path file or a key path registry entry for the component already /// exists. The application does register itself as a client of the component. Use this /// flag only for components that are being registered by the Registry table. Do not use /// this flag for components registered by the AppId, Class, Extension, ProgId, MIME, and /// Verb tables. /// public YesNoType NeverOverwrite { get { return this.neverOverwriteField; } set { this.neverOverwriteFieldSet = true; this.neverOverwriteField = value; } } /// /// If this attribute is set to 'yes', the installer does not remove the component during /// an uninstall. The installer registers an extra system client for the component in /// the Windows Installer registry settings (which basically just means that at least one /// product is always referencing this component). Note that this option differs from the /// behavior of not setting a guid because although the component is permanent, it is still /// patchable (because Windows Installer still tracks it), it's just not uninstallable. /// public YesNoType Permanent { get { return this.permanentField; } set { this.permanentFieldSet = true; this.permanentField = value; } } /// /// If this attribute's value is set to 'yes', enables advanced patching semantics for /// Components that are shared across multiple Products. Specifically, the Windows Installer /// will cache the shared files to improve patch uninstall. This functionality is available /// in Windows Installer 4.5 and later. /// public YesNoType Shared { get { return this.sharedField; } set { this.sharedFieldSet = true; this.sharedField = value; } } /// /// If this attribute's value is set to 'yes', the installer increments the reference count /// in the shared DLL registry of the component's key file. If this bit is not set, the /// installer increments the reference count only if the reference count already exists. /// public YesNoType SharedDllRefCount { get { return this.sharedDllRefCountField; } set { this.sharedDllRefCountFieldSet = true; this.sharedDllRefCountField = value; } } /// /// If this attribute is set to 'yes', the installer reevaluates the value of the statement /// in the Condition upon a reinstall. If the value was previously False and has changed to /// True, the installer installs the component. If the value was previously True and has /// changed to False, the installer removes the component even if the component has other /// products as clients. /// public YesNoType Transitive { get { return this.transitiveField; } set { this.transitiveFieldSet = true; this.transitiveField = value; } } /// /// If this attribute is set to 'yes', the installer will uninstall the Component's files /// and registry keys when it is superseded by a patch. This functionality is available in /// Windows Installer 4.5 and later. /// public YesNoType UninstallWhenSuperseded { get { return this.uninstallWhenSupersededField; } set { this.uninstallWhenSupersededFieldSet = true; this.uninstallWhenSupersededField = value; } } /// /// Set this attribute to 'yes' to mark this as a 64-bit component. This attribute facilitates /// the installation of packages that include both 32-bit and 64-bit components. If this is a 64-bit /// component replacing a 32-bit component, set this attribute to 'yes' and assign a new GUID in the Guid attribute. /// The default value is based on the platform set by the -arch switch to candle.exe /// or the InstallerPlatform property in a .wixproj MSBuild project: /// For x86 and ARM, the default value is 'no'. /// For x64 and IA64, the default value is 'yes'. /// public YesNoType Win64 { get { return this.win64Field; } set { this.win64FieldSet = true; this.win64Field = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("AppId" == childName)) { childValue = new AppId(); } if (("Category" == childName)) { childValue = new Category(); } if (("Class" == childName)) { childValue = new Class(); } if (("Condition" == childName)) { childValue = new Condition(); } if (("CopyFile" == childName)) { childValue = new CopyFile(); } if (("CreateFolder" == childName)) { childValue = new CreateFolder(); } if (("Environment" == childName)) { childValue = new Environment(); } if (("Extension" == childName)) { childValue = new Extension(); } if (("File" == childName)) { childValue = new File(); } if (("IniFile" == childName)) { childValue = new IniFile(); } if (("Interface" == childName)) { childValue = new Interface(); } if (("IsolateComponent" == childName)) { childValue = new IsolateComponent(); } if (("ODBCDataSource" == childName)) { childValue = new ODBCDataSource(); } if (("ODBCDriver" == childName)) { childValue = new ODBCDriver(); } if (("ODBCTranslator" == childName)) { childValue = new ODBCTranslator(); } if (("ProgId" == childName)) { childValue = new ProgId(); } if (("Registry" == childName)) { childValue = new Registry(); } if (("RegistryKey" == childName)) { childValue = new RegistryKey(); } if (("RegistryValue" == childName)) { childValue = new RegistryValue(); } if (("RemoveFile" == childName)) { childValue = new RemoveFile(); } if (("RemoveFolder" == childName)) { childValue = new RemoveFolder(); } if (("RemoveRegistryKey" == childName)) { childValue = new RemoveRegistryKey(); } if (("RemoveRegistryValue" == childName)) { childValue = new RemoveRegistryValue(); } if (("ReserveCost" == childName)) { childValue = new ReserveCost(); } if (("ServiceControl" == childName)) { childValue = new ServiceControl(); } if (("ServiceConfig" == childName)) { childValue = new ServiceConfig(); } if (("ServiceConfigFailureActions" == childName)) { childValue = new ServiceConfigFailureActions(); } if (("ServiceInstall" == childName)) { childValue = new ServiceInstall(); } if (("Shortcut" == childName)) { childValue = new Shortcut(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if (("TypeLib" == childName)) { childValue = new TypeLib(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a LocationType from a string. /// public static LocationType ParseLocationType(string value) { LocationType parsedValue; Component.TryParseLocationType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a LocationType from a string. /// public static bool TryParseLocationType(string value, out LocationType parsedValue) { parsedValue = LocationType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("local" == value)) { parsedValue = LocationType.local; } else { if (("source" == value)) { parsedValue = LocationType.source; } else { if (("either" == value)) { parsedValue = LocationType.either; } else { parsedValue = LocationType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Component", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.comPlusFlagsFieldSet) { writer.WriteAttributeString("ComPlusFlags", this.comPlusFlagsField.ToString(CultureInfo.InvariantCulture)); } if (this.disableRegistryReflectionFieldSet) { if ((this.disableRegistryReflectionField == YesNoType.no)) { writer.WriteAttributeString("DisableRegistryReflection", "no"); } if ((this.disableRegistryReflectionField == YesNoType.yes)) { writer.WriteAttributeString("DisableRegistryReflection", "yes"); } } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.diskIdFieldSet) { writer.WriteAttributeString("DiskId", this.diskIdField); } if (this.featureFieldSet) { writer.WriteAttributeString("Feature", this.featureField); } if (this.guidFieldSet) { writer.WriteAttributeString("Guid", this.guidField); } if (this.keyPathFieldSet) { if ((this.keyPathField == YesNoType.no)) { writer.WriteAttributeString("KeyPath", "no"); } if ((this.keyPathField == YesNoType.yes)) { writer.WriteAttributeString("KeyPath", "yes"); } } if (this.locationFieldSet) { if ((this.locationField == LocationType.local)) { writer.WriteAttributeString("Location", "local"); } if ((this.locationField == LocationType.source)) { writer.WriteAttributeString("Location", "source"); } if ((this.locationField == LocationType.either)) { writer.WriteAttributeString("Location", "either"); } } if (this.multiInstanceFieldSet) { if ((this.multiInstanceField == YesNoType.no)) { writer.WriteAttributeString("MultiInstance", "no"); } if ((this.multiInstanceField == YesNoType.yes)) { writer.WriteAttributeString("MultiInstance", "yes"); } } if (this.neverOverwriteFieldSet) { if ((this.neverOverwriteField == YesNoType.no)) { writer.WriteAttributeString("NeverOverwrite", "no"); } if ((this.neverOverwriteField == YesNoType.yes)) { writer.WriteAttributeString("NeverOverwrite", "yes"); } } if (this.permanentFieldSet) { if ((this.permanentField == YesNoType.no)) { writer.WriteAttributeString("Permanent", "no"); } if ((this.permanentField == YesNoType.yes)) { writer.WriteAttributeString("Permanent", "yes"); } } if (this.sharedFieldSet) { if ((this.sharedField == YesNoType.no)) { writer.WriteAttributeString("Shared", "no"); } if ((this.sharedField == YesNoType.yes)) { writer.WriteAttributeString("Shared", "yes"); } } if (this.sharedDllRefCountFieldSet) { if ((this.sharedDllRefCountField == YesNoType.no)) { writer.WriteAttributeString("SharedDllRefCount", "no"); } if ((this.sharedDllRefCountField == YesNoType.yes)) { writer.WriteAttributeString("SharedDllRefCount", "yes"); } } if (this.transitiveFieldSet) { if ((this.transitiveField == YesNoType.no)) { writer.WriteAttributeString("Transitive", "no"); } if ((this.transitiveField == YesNoType.yes)) { writer.WriteAttributeString("Transitive", "yes"); } } if (this.uninstallWhenSupersededFieldSet) { if ((this.uninstallWhenSupersededField == YesNoType.no)) { writer.WriteAttributeString("UninstallWhenSuperseded", "no"); } if ((this.uninstallWhenSupersededField == YesNoType.yes)) { writer.WriteAttributeString("UninstallWhenSuperseded", "yes"); } } if (this.win64FieldSet) { if ((this.win64Field == YesNoType.no)) { writer.WriteAttributeString("Win64", "no"); } if ((this.win64Field == YesNoType.yes)) { writer.WriteAttributeString("Win64", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("ComPlusFlags" == name)) { this.comPlusFlagsField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.comPlusFlagsFieldSet = true; } if (("DisableRegistryReflection" == name)) { this.disableRegistryReflectionField = Enums.ParseYesNoType(value); this.disableRegistryReflectionFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("DiskId" == name)) { this.diskIdField = value; this.diskIdFieldSet = true; } if (("Feature" == name)) { this.featureField = value; this.featureFieldSet = true; } if (("Guid" == name)) { this.guidField = value; this.guidFieldSet = true; } if (("KeyPath" == name)) { this.keyPathField = Enums.ParseYesNoType(value); this.keyPathFieldSet = true; } if (("Location" == name)) { this.locationField = Component.ParseLocationType(value); this.locationFieldSet = true; } if (("MultiInstance" == name)) { this.multiInstanceField = Enums.ParseYesNoType(value); this.multiInstanceFieldSet = true; } if (("NeverOverwrite" == name)) { this.neverOverwriteField = Enums.ParseYesNoType(value); this.neverOverwriteFieldSet = true; } if (("Permanent" == name)) { this.permanentField = Enums.ParseYesNoType(value); this.permanentFieldSet = true; } if (("Shared" == name)) { this.sharedField = Enums.ParseYesNoType(value); this.sharedFieldSet = true; } if (("SharedDllRefCount" == name)) { this.sharedDllRefCountField = Enums.ParseYesNoType(value); this.sharedDllRefCountFieldSet = true; } if (("Transitive" == name)) { this.transitiveField = Enums.ParseYesNoType(value); this.transitiveFieldSet = true; } if (("UninstallWhenSuperseded" == name)) { this.uninstallWhenSupersededField = Enums.ParseYesNoType(value); this.uninstallWhenSupersededFieldSet = true; } if (("Win64" == name)) { this.win64Field = Enums.ParseYesNoType(value); this.win64FieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum LocationType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Prevents the component from running from the source or the network (this is the default behavior if this attribute is not set). /// local, /// /// Enforces that the component can only be run from the source (it cannot be run from the user's computer). /// source, /// /// Allows the component to run from source or locally. /// either, } } /// /// Groups together multiple components to be used in other locations. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComponentGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string directoryField; private bool directoryFieldSet; private string sourceField; private bool sourceFieldSet; private ISchemaElement parentElement; public ComponentGroup() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for the ComponentGroup. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Sets the default directory identifier for child Component elements. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// Used to set the default file system source for child Component elements. For more information, see /// public string Source { get { return this.sourceField; } set { this.sourceFieldSet = true; this.sourceField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroupRef" == childName)) { childValue = new ComponentGroupRef(); } if (("ComponentRef" == childName)) { childValue = new ComponentRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComponentGroup", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.sourceFieldSet) { writer.WriteAttributeString("Source", this.sourceField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("Source" == name)) { this.sourceField = value; this.sourceFieldSet = true; } } } /// /// Create a reference to a ComponentGroup in another Fragment. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComponentGroupRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType primaryField; private bool primaryFieldSet; private ISchemaElement parentElement; /// /// The identifier of the ComponentGroup to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set this attribute to 'yes' in order to make the parent feature of this component /// the primary feature for this component. Components may belong to multiple features. /// By designating a feature as the primary feature of a component, you ensure that /// whenever a component is selected for install-on-demand (IOD), the primary feature /// will be the one to install it. This attribute should only be set if a component /// actually nests under multiple features. If a component nests under only one feature, /// that feature is the primary feature for the component. You cannot set more than one /// feature as the primary feature of a given component. /// public YesNoType Primary { get { return this.primaryField; } set { this.primaryFieldSet = true; this.primaryField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComponentGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.primaryFieldSet) { if ((this.primaryField == YesNoType.no)) { writer.WriteAttributeString("Primary", "no"); } if ((this.primaryField == YesNoType.yes)) { writer.WriteAttributeString("Primary", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Primary" == name)) { this.primaryField = Enums.ParseYesNoType(value); this.primaryFieldSet = true; } } } /// /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class All : ISetAttributes, ISchemaElement { private ISchemaElement parentElement; private string contentField; private bool contentFieldSet; public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Used only for PatchFamilies to include all changes between the baseline and upgraded packages in a patch. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("All", "http://wixtoolset.org/schemas/v4/wxs"); if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } } /// /// Used only for PatchFamilies to include only a binary table entry in a patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class BinaryRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of the Binary element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("BinaryRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Used only for PatchFamilies to include only a icon table entry in a patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IconRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of the Icon element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IconRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Create a reference to a Feature element in another Fragment. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComponentRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType primaryField; private bool primaryFieldSet; private ISchemaElement parentElement; /// /// The identifier of the Component element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set this attribute to 'yes' in order to make the parent feature of this component /// the primary feature for this component. Components may belong to multiple features. /// By designating a feature as the primary feature of a component, you ensure that /// whenever a component is selected for install-on-demand (IOD), the primary feature /// will be the one to install it. This attribute should only be set if a component /// actually nests under multiple features. If a component nests under only one feature, /// that feature is the primary feature for the component. You cannot set more than one /// feature as the primary feature of a given component. /// public YesNoType Primary { get { return this.primaryField; } set { this.primaryFieldSet = true; this.primaryField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComponentRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.primaryFieldSet) { if ((this.primaryField == YesNoType.no)) { writer.WriteAttributeString("Primary", "no"); } if ((this.primaryField == YesNoType.yes)) { writer.WriteAttributeString("Primary", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Primary" == name)) { this.primaryField = Enums.ParseYesNoType(value); this.primaryFieldSet = true; } } } /// /// Merge directive to bring in a merge module that will be redirected to the parent directory. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Merge : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string diskIdField; private bool diskIdFieldSet; private YesNoType fileCompressionField; private bool fileCompressionFieldSet; private string languageField; private bool languageFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string srcField; private bool srcFieldSet; private ISchemaElement parentElement; public Merge() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ConfigurationData))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The value of this attribute should correspond to the Id attribute of a /// Media element authored elsewhere. By creating this connection between the merge module and Media /// element, you set the packaging options to the values specified in the Media /// element (values such as compression level, cab embedding, etc...). /// public string DiskId { get { return this.diskIdField; } set { this.diskIdFieldSet = true; this.diskIdField = value; } } /// /// Specifies if the files in the merge module should be compressed. /// public YesNoType FileCompression { get { return this.fileCompressionField; } set { this.fileCompressionFieldSet = true; this.fileCompressionField = value; } } /// /// Specifies the decimal LCID or localization token for the language to merge the Module in as. /// public string Language { get { return this.languageField; } set { this.languageFieldSet = true; this.languageField = value; } } /// /// Path to the source location of the merge module. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ConfigurationData" == childName)) { childValue = new ConfigurationData(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Merge", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.diskIdFieldSet) { writer.WriteAttributeString("DiskId", this.diskIdField); } if (this.fileCompressionFieldSet) { if ((this.fileCompressionField == YesNoType.no)) { writer.WriteAttributeString("FileCompression", "no"); } if ((this.fileCompressionField == YesNoType.yes)) { writer.WriteAttributeString("FileCompression", "yes"); } } if (this.languageFieldSet) { writer.WriteAttributeString("Language", this.languageField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("DiskId" == name)) { this.diskIdField = value; this.diskIdFieldSet = true; } if (("FileCompression" == name)) { this.fileCompressionField = Enums.ParseYesNoType(value); this.fileCompressionFieldSet = true; } if (("Language" == name)) { this.languageField = value; this.languageFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } } } /// /// Merge reference to connect a Merge Module to parent Feature /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MergeRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType primaryField; private bool primaryFieldSet; private ISchemaElement parentElement; /// /// The unique identifier for the Merge element to be referenced. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. /// public YesNoType Primary { get { return this.primaryField; } set { this.primaryFieldSet = true; this.primaryField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MergeRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.primaryFieldSet) { if ((this.primaryField == YesNoType.no)) { writer.WriteAttributeString("Primary", "no"); } if ((this.primaryField == YesNoType.yes)) { writer.WriteAttributeString("Primary", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Primary" == name)) { this.primaryField = Enums.ParseYesNoType(value); this.primaryFieldSet = true; } } } /// /// Data to use as input to a configurable merge module. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ConfigurationData : ISchemaElement, ISetAttributes { private string nameField; private bool nameFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// Name of the item in the ModuleConfiguration table. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Value to be passed to configurable merge module. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ConfigurationData", "http://wixtoolset.org/schemas/v4/wxs"); if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Directory layout for the product. Also specifies the mappings between source and target directories. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Directory : DirectoryBase { private string componentGuidGenerationSeedField; private bool componentGuidGenerationSeedFieldSet; private string diskIdField; private bool diskIdFieldSet; private string fileSourceField; private bool fileSourceFieldSet; private string nameField; private bool nameFieldSet; private string shortNameField; private bool shortNameFieldSet; private string shortSourceNameField; private bool shortSourceNameFieldSet; private string sourceNameField; private bool sourceNameFieldSet; private string srcField; private bool srcFieldSet; public Directory() { } /// /// The Component Guid Generation Seed is a guid that must be used when a Component with the generate guid directive ("*") /// is not rooted in a standard Windows Installer directory (for example, ProgramFilesFolder or CommonFilesFolder). /// It is recommended that this attribute be avoided and that developers install their Components under standard /// directories with unique names instead (for example, "ProgramFilesFolder\Company Name Product Name Version"). It is /// important to note that once a directory is assigned a Component Guid Generation Seed the value must not change until /// (and must be changed when) the path to that directory, including itself and all parent directories, changes. /// public string ComponentGuidGenerationSeed { get { return this.componentGuidGenerationSeedField; } set { this.componentGuidGenerationSeedFieldSet = true; this.componentGuidGenerationSeedField = value; } } /// /// Sets the default disk identifier for the files contained in this directory. /// This attribute's value may be overridden by a child Component, Directory, /// Merge or File element. See the File or Merge elements' DiskId attribute for /// more information. /// public string DiskId { get { return this.diskIdField; } set { this.diskIdFieldSet = true; this.diskIdField = value; } } /// /// Used to set the file system source for this directory's child elements. For more information, see /// public string FileSource { get { return this.fileSourceField; } set { this.fileSourceFieldSet = true; this.fileSourceField = value; } } /// /// The name of the directory. /// /// Do not specify this attribute if this directory represents /// the same directory as the parent (see the Windows Installer SDK's /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The short name of the directory in 8.3 format. /// This attribute should only be set if there is a conflict between generated short directory names /// or the user wants to manually specify the short directory name. /// public string ShortName { get { return this.shortNameField; } set { this.shortNameFieldSet = true; this.shortNameField = value; } } /// /// The short name of the directory on the source media in 8.3 format. /// This attribute should only be set if there is a conflict between generated short directory names /// or the user wants to manually specify the short source directory name. /// public string ShortSourceName { get { return this.shortSourceNameField; } set { this.shortSourceNameFieldSet = true; this.shortSourceNameField = value; } } /// /// The name of the directory on the source media. /// If this attribute is not specified, Windows Installer will default to the Name attribute. /// /// In prior versions of the WiX toolset, this attribute specified the short source directory name. /// This attribute's value may now be either a short or long directory name. /// If a short directory name is specified, the ShortSourceName attribute may not be specified. /// If a long directory name is specified, the LongSource attribute may not be specified. /// Also, if this value is a long directory name, the ShortSourceName attribute may be omitted to /// allow WiX to attempt to generate a unique short directory name. /// However, if this name collides with another directory or you wish to manually specify /// the short directory name, then the ShortSourceName attribute may be specified. /// public string SourceName { get { return this.sourceNameField; } set { this.sourceNameFieldSet = true; this.sourceNameField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } public override void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public override void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] public override ISchemaElement CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("Directory" == childName)) { childValue = new Directory(); } if (("Merge" == childName)) { childValue = new Merge(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Directory", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.componentGuidGenerationSeedFieldSet) { writer.WriteAttributeString("ComponentGuidGenerationSeed", this.componentGuidGenerationSeedField); } if (this.diskIdFieldSet) { writer.WriteAttributeString("DiskId", this.diskIdField); } if (this.fileSourceFieldSet) { writer.WriteAttributeString("FileSource", this.fileSourceField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.shortNameFieldSet) { writer.WriteAttributeString("ShortName", this.shortNameField); } if (this.shortSourceNameFieldSet) { writer.WriteAttributeString("ShortSourceName", this.shortSourceNameField); } if (this.sourceNameFieldSet) { writer.WriteAttributeString("SourceName", this.sourceNameField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public override void SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("ComponentGuidGenerationSeed" == name)) { this.componentGuidGenerationSeedField = value; this.componentGuidGenerationSeedFieldSet = true; } if (("DiskId" == name)) { this.diskIdField = value; this.diskIdFieldSet = true; } if (("FileSource" == name)) { this.fileSourceField = value; this.fileSourceFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("ShortName" == name)) { this.shortNameField = value; this.shortNameFieldSet = true; } if (("ShortSourceName" == name)) { this.shortSourceNameField = value; this.shortSourceNameFieldSet = true; } if (("SourceName" == name)) { this.sourceNameField = value; this.sourceNameFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } } } /// /// Create a reference to a Directory element in another Fragment. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DirectoryRef : DirectoryBase { private string diskIdField; private bool diskIdFieldSet; private string fileSourceField; private bool fileSourceFieldSet; private string srcField; private bool srcFieldSet; /// /// Sets the default disk identifier for the files contained in this directory. /// This attribute's value may be overridden by a child Component, Directory, /// Merge or File element. See the File or Merge elements' DiskId attribute for /// more information. /// public string DiskId { get { return this.diskIdField; } set { this.diskIdFieldSet = true; this.diskIdField = value; } } /// /// Used to set the file system source for this DirectoryRef's child elements. For more information, see /// public string FileSource { get { return this.fileSourceField; } set { this.fileSourceFieldSet = true; this.fileSourceField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } public override void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public override void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] public override ISchemaElement CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("Directory" == childName)) { childValue = new Directory(); } if (("Merge" == childName)) { childValue = new Merge(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DirectoryRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.diskIdFieldSet) { writer.WriteAttributeString("DiskId", this.diskIdField); } if (this.fileSourceFieldSet) { writer.WriteAttributeString("FileSource", this.fileSourceField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] public override void SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("DiskId" == name)) { this.diskIdField = value; this.diskIdFieldSet = true; } if (("FileSource" == name)) { this.fileSourceField = value; this.fileSourceFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } } } /// /// Create a reference to a Directory element in another Fragment. /// public class StandardDirectory : DirectoryBase { public override void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public override void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] public override ISchemaElement CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("Directory" == childName)) { childValue = new Directory(); } if (("Merge" == childName)) { childValue = new Merge(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("StandardDirectory", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext();) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] public override void SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } public abstract class DirectoryBase : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { protected ElementCollection children; protected string idField; protected bool idFieldSet; protected ISchemaElement parentElement; public DirectoryBase() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Directory))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Merge))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The identifier of the Directory element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public abstract void AddChild(ISchemaElement child); public abstract ISchemaElement CreateChild(string childName); public abstract void RemoveChild(ISchemaElement child); public abstract void OutputXml(XmlWriter writer); public abstract void SetAttribute(string name, string value); } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UpgradeVersion : ISchemaElement, ISetAttributes { private string minimumField; private bool minimumFieldSet; private string maximumField; private bool maximumFieldSet; private string languageField; private bool languageFieldSet; private string removeFeaturesField; private bool removeFeaturesFieldSet; private string propertyField; private bool propertyFieldSet; private YesNoType migrateFeaturesField; private bool migrateFeaturesFieldSet; private YesNoType onlyDetectField; private bool onlyDetectFieldSet; private YesNoType ignoreRemoveFailureField; private bool ignoreRemoveFailureFieldSet; private YesNoType includeMinimumField; private bool includeMinimumFieldSet; private YesNoType includeMaximumField; private bool includeMaximumFieldSet; private YesNoType excludeLanguagesField; private bool excludeLanguagesFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. /// public string Minimum { get { return this.minimumField; } set { this.minimumFieldSet = true; this.minimumField = value; } } /// /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. /// public string Maximum { get { return this.maximumField; } set { this.maximumFieldSet = true; this.maximumField = value; } } /// /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. /// public string Language { get { return this.languageField; } set { this.languageFieldSet = true; this.languageField = value; } } /// /// The installer sets the REMOVE property to features specified in this column. The features to be removed can be determined at run time. The Formatted string entered in this field must evaluate to a comma-delimited list of feature names. For example: [Feature1],[Feature2],[Feature3]. No features are removed if the field contains formatted text that evaluates to an empty string. The installer sets REMOVE=ALL only if the Remove field is empty. /// public string RemoveFeatures { get { return this.removeFeaturesField; } set { this.removeFeaturesFieldSet = true; this.removeFeaturesField = value; } } /// /// When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. Windows Installer documentation for the /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. /// public YesNoType MigrateFeatures { get { return this.migrateFeaturesField; } set { this.migrateFeaturesFieldSet = true; this.migrateFeaturesField = value; } } /// /// Set to "yes" to detect products and applications but do not uninstall. /// public YesNoType OnlyDetect { get { return this.onlyDetectField; } set { this.onlyDetectFieldSet = true; this.onlyDetectField = value; } } /// /// Set to "yes" to continue installation upon failure to remove a product or application. /// public YesNoType IgnoreRemoveFailure { get { return this.ignoreRemoveFailureField; } set { this.ignoreRemoveFailureFieldSet = true; this.ignoreRemoveFailureField = value; } } /// /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. /// public YesNoType IncludeMinimum { get { return this.includeMinimumField; } set { this.includeMinimumFieldSet = true; this.includeMinimumField = value; } } /// /// Set to "yes" to make the range of versions detected include the value specified in Maximum. /// public YesNoType IncludeMaximum { get { return this.includeMaximumField; } set { this.includeMaximumFieldSet = true; this.includeMaximumField = value; } } /// /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. /// public YesNoType ExcludeLanguages { get { return this.excludeLanguagesField; } set { this.excludeLanguagesFieldSet = true; this.excludeLanguagesField = value; } } public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UpgradeVersion", "http://wixtoolset.org/schemas/v4/wxs"); if (this.minimumFieldSet) { writer.WriteAttributeString("Minimum", this.minimumField); } if (this.maximumFieldSet) { writer.WriteAttributeString("Maximum", this.maximumField); } if (this.languageFieldSet) { writer.WriteAttributeString("Language", this.languageField); } if (this.removeFeaturesFieldSet) { writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.migrateFeaturesFieldSet) { if ((this.migrateFeaturesField == YesNoType.no)) { writer.WriteAttributeString("MigrateFeatures", "no"); } if ((this.migrateFeaturesField == YesNoType.yes)) { writer.WriteAttributeString("MigrateFeatures", "yes"); } } if (this.onlyDetectFieldSet) { if ((this.onlyDetectField == YesNoType.no)) { writer.WriteAttributeString("OnlyDetect", "no"); } if ((this.onlyDetectField == YesNoType.yes)) { writer.WriteAttributeString("OnlyDetect", "yes"); } } if (this.ignoreRemoveFailureFieldSet) { if ((this.ignoreRemoveFailureField == YesNoType.no)) { writer.WriteAttributeString("IgnoreRemoveFailure", "no"); } if ((this.ignoreRemoveFailureField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); } } if (this.includeMinimumFieldSet) { if ((this.includeMinimumField == YesNoType.no)) { writer.WriteAttributeString("IncludeMinimum", "no"); } if ((this.includeMinimumField == YesNoType.yes)) { writer.WriteAttributeString("IncludeMinimum", "yes"); } } if (this.includeMaximumFieldSet) { if ((this.includeMaximumField == YesNoType.no)) { writer.WriteAttributeString("IncludeMaximum", "no"); } if ((this.includeMaximumField == YesNoType.yes)) { writer.WriteAttributeString("IncludeMaximum", "yes"); } } if (this.excludeLanguagesFieldSet) { if ((this.excludeLanguagesField == YesNoType.no)) { writer.WriteAttributeString("ExcludeLanguages", "no"); } if ((this.excludeLanguagesField == YesNoType.yes)) { writer.WriteAttributeString("ExcludeLanguages", "yes"); } } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Minimum" == name)) { this.minimumField = value; this.minimumFieldSet = true; } if (("Maximum" == name)) { this.maximumField = value; this.maximumFieldSet = true; } if (("Language" == name)) { this.languageField = value; this.languageFieldSet = true; } if (("RemoveFeatures" == name)) { this.removeFeaturesField = value; this.removeFeaturesFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("MigrateFeatures" == name)) { this.migrateFeaturesField = Enums.ParseYesNoType(value); this.migrateFeaturesFieldSet = true; } if (("OnlyDetect" == name)) { this.onlyDetectField = Enums.ParseYesNoType(value); this.onlyDetectFieldSet = true; } if (("IgnoreRemoveFailure" == name)) { this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); this.ignoreRemoveFailureFieldSet = true; } if (("IncludeMinimum" == name)) { this.includeMinimumField = Enums.ParseYesNoType(value); this.includeMinimumFieldSet = true; } if (("IncludeMaximum" == name)) { this.includeMaximumField = Enums.ParseYesNoType(value); this.includeMaximumFieldSet = true; } if (("ExcludeLanguages" == name)) { this.excludeLanguagesField = Enums.ParseYesNoType(value); this.excludeLanguagesFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Upgrade info for a particular UpgradeCode /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Upgrade : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public Upgrade() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UpgradeVersion))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("UpgradeVersion" == childName)) { childValue = new UpgradeVersion(); } if (("Property" == childName)) { childValue = new Property(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Upgrade", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// A feature for the Feature table. Features are the smallest installable unit. See msi.chm for more /// detailed information on the myriad installation options for a feature. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Feature : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private AbsentType absentField; private bool absentFieldSet; private AllowAdvertiseType allowAdvertiseField; private bool allowAdvertiseFieldSet; private string configurableDirectoryField; private bool configurableDirectoryFieldSet; private string descriptionField; private bool descriptionFieldSet; private string displayField; private bool displayFieldSet; private InstallDefaultType installDefaultField; private bool installDefaultFieldSet; private int levelField; private bool levelFieldSet; private string titleField; private bool titleFieldSet; private TypicalDefaultType typicalDefaultField; private bool typicalDefaultFieldSet; private ISchemaElement parentElement; public Feature() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier of the feature. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This attribute determines if a user will have the option to set a feature to absent in the user interface. /// public AbsentType Absent { get { return this.absentField; } set { this.absentFieldSet = true; this.absentField = value; } } /// /// This attribute determines the possible advertise states for this feature. /// public AllowAdvertiseType AllowAdvertise { get { return this.allowAdvertiseField; } set { this.allowAdvertiseFieldSet = true; this.allowAdvertiseField = value; } } /// /// Specify the Id of a Directory that can be configured by the user at installation time. This identifier /// must be a public property and therefore completely uppercase. /// public string ConfigurableDirectory { get { return this.configurableDirectoryField; } set { this.configurableDirectoryFieldSet = true; this.configurableDirectoryField = value; } } /// /// Longer string of text describing the feature. This localizable string is displayed by the /// Text Control of the Selection Dialog. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// Determines the initial display of this feature in the feature tree. /// This attribute's value should be one of the following: /// public string Display { get { return this.displayField; } set { this.displayFieldSet = true; this.displayField = value; } } /// /// This attribute determines the default install/run location of a feature. This attribute cannot be specified /// if the value of the FollowParent attribute is 'yes' since that would ask the installer to force this feature /// to follow the parent installation state and simultaneously favor a particular installation state just for this feature. /// public InstallDefaultType InstallDefault { get { return this.installDefaultField; } set { this.installDefaultFieldSet = true; this.installDefaultField = value; } } /// /// Sets the install level of this feature. A value of 0 will disable the feature. Processing the /// Condition Table can modify the level value (this is set via the Condition child element). The /// default value is "1". /// public int Level { get { return this.levelField; } set { this.levelFieldSet = true; this.levelField = value; } } /// /// Short string of text identifying the feature. This string is listed as an item by the /// SelectionTree control of the Selection Dialog. /// public string Title { get { return this.titleField; } set { this.titleFieldSet = true; this.titleField = value; } } /// /// This attribute determines the default advertise state of the feature. /// public TypicalDefaultType TypicalDefault { get { return this.typicalDefaultField; } set { this.typicalDefaultFieldSet = true; this.typicalDefaultField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroupRef" == childName)) { childValue = new ComponentGroupRef(); } if (("ComponentRef" == childName)) { childValue = new ComponentRef(); } if (("Condition" == childName)) { childValue = new Condition(); } if (("Feature" == childName)) { childValue = new Feature(); } if (("FeatureGroupRef" == childName)) { childValue = new FeatureGroupRef(); } if (("FeatureRef" == childName)) { childValue = new FeatureRef(); } if (("MergeRef" == childName)) { childValue = new MergeRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a AbsentType from a string. /// public static AbsentType ParseAbsentType(string value) { AbsentType parsedValue; Feature.TryParseAbsentType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a AbsentType from a string. /// public static bool TryParseAbsentType(string value, out AbsentType parsedValue) { parsedValue = AbsentType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("allow" == value)) { parsedValue = AbsentType.allow; } else { if (("disallow" == value)) { parsedValue = AbsentType.disallow; } else { parsedValue = AbsentType.IllegalValue; return false; } } return true; } /// /// Parses a AllowAdvertiseType from a string. /// public static AllowAdvertiseType ParseAllowAdvertiseType(string value) { AllowAdvertiseType parsedValue; Feature.TryParseAllowAdvertiseType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a AllowAdvertiseType from a string. /// public static bool TryParseAllowAdvertiseType(string value, out AllowAdvertiseType parsedValue) { parsedValue = AllowAdvertiseType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("no" == value)) { parsedValue = AllowAdvertiseType.no; } else { if (("system" == value)) { parsedValue = AllowAdvertiseType.system; } else { if (("yes" == value)) { parsedValue = AllowAdvertiseType.yes; } else { parsedValue = AllowAdvertiseType.IllegalValue; return false; } } } return true; } /// /// Parses a InstallDefaultType from a string. /// public static InstallDefaultType ParseInstallDefaultType(string value) { InstallDefaultType parsedValue; Feature.TryParseInstallDefaultType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a InstallDefaultType from a string. /// public static bool TryParseInstallDefaultType(string value, out InstallDefaultType parsedValue) { parsedValue = InstallDefaultType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("followParent" == value)) { parsedValue = InstallDefaultType.followParent; } else { if (("local" == value)) { parsedValue = InstallDefaultType.local; } else { if (("source" == value)) { parsedValue = InstallDefaultType.source; } else { parsedValue = InstallDefaultType.IllegalValue; return false; } } } return true; } /// /// Parses a TypicalDefaultType from a string. /// public static TypicalDefaultType ParseTypicalDefaultType(string value) { TypicalDefaultType parsedValue; Feature.TryParseTypicalDefaultType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypicalDefaultType from a string. /// public static bool TryParseTypicalDefaultType(string value, out TypicalDefaultType parsedValue) { parsedValue = TypicalDefaultType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("advertise" == value)) { parsedValue = TypicalDefaultType.advertise; } else { if (("install" == value)) { parsedValue = TypicalDefaultType.install; } else { parsedValue = TypicalDefaultType.IllegalValue; return false; } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Feature", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.absentFieldSet) { if ((this.absentField == AbsentType.allow)) { writer.WriteAttributeString("Absent", "allow"); } if ((this.absentField == AbsentType.disallow)) { writer.WriteAttributeString("Absent", "disallow"); } } if (this.allowAdvertiseFieldSet) { if ((this.allowAdvertiseField == AllowAdvertiseType.no)) { writer.WriteAttributeString("AllowAdvertise", "no"); } if ((this.allowAdvertiseField == AllowAdvertiseType.system)) { writer.WriteAttributeString("AllowAdvertise", "system"); } if ((this.allowAdvertiseField == AllowAdvertiseType.yes)) { writer.WriteAttributeString("AllowAdvertise", "yes"); } } if (this.configurableDirectoryFieldSet) { writer.WriteAttributeString("ConfigurableDirectory", this.configurableDirectoryField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.displayFieldSet) { writer.WriteAttributeString("Display", this.displayField); } if (this.installDefaultFieldSet) { if ((this.installDefaultField == InstallDefaultType.followParent)) { writer.WriteAttributeString("InstallDefault", "followParent"); } if ((this.installDefaultField == InstallDefaultType.local)) { writer.WriteAttributeString("InstallDefault", "local"); } if ((this.installDefaultField == InstallDefaultType.source)) { writer.WriteAttributeString("InstallDefault", "source"); } } if (this.levelFieldSet) { writer.WriteAttributeString("Level", this.levelField.ToString(CultureInfo.InvariantCulture)); } if (this.titleFieldSet) { writer.WriteAttributeString("Title", this.titleField); } if (this.typicalDefaultFieldSet) { if ((this.typicalDefaultField == TypicalDefaultType.advertise)) { writer.WriteAttributeString("TypicalDefault", "advertise"); } if ((this.typicalDefaultField == TypicalDefaultType.install)) { writer.WriteAttributeString("TypicalDefault", "install"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Absent" == name)) { this.absentField = Feature.ParseAbsentType(value); this.absentFieldSet = true; } if (("AllowAdvertise" == name)) { this.allowAdvertiseField = Feature.ParseAllowAdvertiseType(value); this.allowAdvertiseFieldSet = true; } if (("ConfigurableDirectory" == name)) { this.configurableDirectoryField = value; this.configurableDirectoryFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("Display" == name)) { this.displayField = value; this.displayFieldSet = true; } if (("InstallDefault" == name)) { this.installDefaultField = Feature.ParseInstallDefaultType(value); this.installDefaultFieldSet = true; } if (("Level" == name)) { this.levelField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.levelFieldSet = true; } if (("Title" == name)) { this.titleField = value; this.titleFieldSet = true; } if (("TypicalDefault" == name)) { this.typicalDefaultField = Feature.ParseTypicalDefaultType(value); this.typicalDefaultFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum AbsentType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Allows the user interface to display an option to change the feature state to Absent. /// allow, /// /// Prevents the user interface from displaying an option to change the feature state /// to Absent by setting the msidbFeatureAttributesUIDisallowAbsent attribute. This will force the feature /// to the installation state, whether or not the feature is visible in the UI. /// disallow, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum AllowAdvertiseType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Prevents this feature from being advertised by setting the msidbFeatureAttributesDisallowAdvertise attribute. /// no, /// /// Prevents advertising for this feature if the operating system shell does not support Windows Installer /// descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. /// system, /// /// Allows the feature to be advertised. /// yes, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum InstallDefaultType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Forces the feature to follow the same installation state as its parent feature. /// followParent, /// /// Favors installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. /// local, /// /// Favors running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. /// source, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypicalDefaultType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Sets the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. /// This value cannot be set if the value of the AllowAdvertise attribute is 'no' since that would ask the installer to /// disallow the advertised state for this feature while at the same time favoring it. /// advertise, /// /// Sets the feature to the default non-advertised installation option. /// install, } } /// /// Groups together multiple components, features, and merges to be used in other locations. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FeatureGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public FeatureGroup() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for the FeatureGroup. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroupRef" == childName)) { childValue = new ComponentGroupRef(); } if (("ComponentRef" == childName)) { childValue = new ComponentRef(); } if (("Feature" == childName)) { childValue = new Feature(); } if (("FeatureGroupRef" == childName)) { childValue = new FeatureGroupRef(); } if (("FeatureRef" == childName)) { childValue = new FeatureRef(); } if (("MergeRef" == childName)) { childValue = new MergeRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FeatureGroup", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Create a reference to a FeatureGroup in another Fragment. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FeatureGroupRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType ignoreParentField; private bool ignoreParentFieldSet; private YesNoType primaryField; private bool primaryFieldSet; private ISchemaElement parentElement; /// /// The identifier of the FeatureGroup to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Normally feature group references that end up nested under a parent element create a /// connection to that parent. This behavior is undesirable when trying to simply reference /// to a FeatureGroup in a different Fragment. Specify 'yes' to have this feature group /// reference not create a connection to its parent. The default is 'no'. /// public YesNoType IgnoreParent { get { return this.ignoreParentField; } set { this.ignoreParentFieldSet = true; this.ignoreParentField = value; } } /// /// Set this attribute to 'yes' in order to make the parent feature of this group /// the primary feature for any components and merges contained in the group. /// Features may belong to multiple features. By designating a feature as the /// primary feature of a component or merge, you ensure that whenever a component is /// selected for install-on-demand (IOD), the primary feature will be the one to install /// it. This attribute should only be set if a component actually nests under multiple /// features. If a component nests under only one feature, that feature is the primary /// feature for the component. You cannot set more than one feature as the primary /// feature of a given component. /// public YesNoType Primary { get { return this.primaryField; } set { this.primaryFieldSet = true; this.primaryField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FeatureGroupRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.ignoreParentFieldSet) { if ((this.ignoreParentField == YesNoType.no)) { writer.WriteAttributeString("IgnoreParent", "no"); } if ((this.ignoreParentField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreParent", "yes"); } } if (this.primaryFieldSet) { if ((this.primaryField == YesNoType.no)) { writer.WriteAttributeString("Primary", "no"); } if ((this.primaryField == YesNoType.yes)) { writer.WriteAttributeString("Primary", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("IgnoreParent" == name)) { this.ignoreParentField = Enums.ParseYesNoType(value); this.ignoreParentFieldSet = true; } if (("Primary" == name)) { this.primaryField = Enums.ParseYesNoType(value); this.primaryFieldSet = true; } } } /// /// Create a reference to a Feature element in another Fragment. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FeatureRef : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private YesNoType ignoreParentField; private bool ignoreParentFieldSet; private ISchemaElement parentElement; public FeatureRef() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Component))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComponentRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Feature))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FeatureGroupRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MergeRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The identifier of the Feature element to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Normally feature references that are nested under a parent element create a connection to that /// parent. This behavior is undesirable when trying to simply reference a Feature in a different /// Fragment. Specify 'yes' to have this feature reference not create a connection to its parent. /// The default is 'no'. /// public YesNoType IgnoreParent { get { return this.ignoreParentField; } set { this.ignoreParentFieldSet = true; this.ignoreParentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Component" == childName)) { childValue = new Component(); } if (("ComponentGroupRef" == childName)) { childValue = new ComponentGroupRef(); } if (("ComponentRef" == childName)) { childValue = new ComponentRef(); } if (("Feature" == childName)) { childValue = new Feature(); } if (("FeatureRef" == childName)) { childValue = new FeatureRef(); } if (("FeatureGroup" == childName)) { childValue = new FeatureGroup(); } if (("FeatureGroupRef" == childName)) { childValue = new FeatureGroupRef(); } if (("MergeRef" == childName)) { childValue = new MergeRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FeatureRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.ignoreParentFieldSet) { if ((this.ignoreParentField == YesNoType.no)) { writer.WriteAttributeString("IgnoreParent", "no"); } if ((this.ignoreParentField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreParent", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("IgnoreParent" == name)) { this.ignoreParentField = Enums.ParseYesNoType(value); this.ignoreParentFieldSet = true; } } } /// /// Media element describes a disk that makes up the source media for the installation. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Media : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string cabinetField; private bool cabinetFieldSet; private CompressionLevelType compressionLevelField; private bool compressionLevelFieldSet; private string diskPromptField; private bool diskPromptFieldSet; private YesNoType embedCabField; private bool embedCabFieldSet; private string layoutField; private bool layoutFieldSet; private string srcField; private bool srcFieldSet; private string volumeLabelField; private bool volumeLabelFieldSet; private string sourceField; private bool sourceFieldSet; private ISchemaElement parentElement; public Media() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(DigitalSignature))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(PatchBaseline))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(SymbolPath))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Disk identifier for Media table. This number must be equal to or greater than 1. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The name of the cabinet if some or all of the files stored on the media are in a cabinet file. If no cabinets are used, this attribute must not be set. /// public string Cabinet { get { return this.cabinetField; } set { this.cabinetFieldSet = true; this.cabinetField = value; } } /// /// Indicates the compression level for the Media's cabinet. This attribute can /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. /// public CompressionLevelType CompressionLevel { get { return this.compressionLevelField; } set { this.compressionLevelFieldSet = true; this.compressionLevelField = value; } } /// /// The disk name, which is usually the visible text printed on the disk. This localizable text is used to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. /// public string DiskPrompt { get { return this.diskPromptField; } set { this.diskPromptFieldSet = true; this.diskPromptField = value; } } /// /// Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. /// public YesNoType EmbedCab { get { return this.embedCabField; } set { this.embedCabFieldSet = true; this.embedCabField = value; } } /// /// This attribute specifies the root directory for the uncompressed files that /// are a part of this Media element. By default, the src will be the output /// directory for the final image. The default value ensures the binder generates /// an installable image. If a relative path is specified in the src attribute, /// the value will be appended to the image's output directory. If an absolute /// path is provided, that path will be used without modification. The latter two /// options are provided to ease the layout of an image onto multiple medias (CDs/DVDs). /// public string Layout { get { return this.layoutField; } set { this.layoutFieldSet = true; this.layoutField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } /// /// The label attributed to the volume. This is the volume label returned /// by the GetVolumeInformation function. If the SourceDir property refers /// to a removable (floppy or CD-ROM) volume, then this volume label is /// used to verify that the proper disk is in the drive before attempting /// to install files. The entry in this column must match the volume label /// of the physical media. /// public string VolumeLabel { get { return this.volumeLabelField; } set { this.volumeLabelFieldSet = true; this.volumeLabelField = value; } } /// /// Optional property that identifies the source of the embedded cabinet. /// If a cabinet is specified for a patch, this property should be defined /// and unique to each patch so that the embedded cabinet containing patched /// and new files can be located in the patch package. If the cabinet is not /// embedded - this is not typical - the cabinet can be found in the directory /// referenced in this column. If empty, the external cabinet must be located /// in the SourceDir directory. /// public string Source { get { return this.sourceField; } set { this.sourceFieldSet = true; this.sourceField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("DigitalSignature" == childName)) { childValue = new DigitalSignature(); } if (("PatchBaseline" == childName)) { childValue = new PatchBaseline(); } if (("SymbolPath" == childName)) { childValue = new SymbolPath(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Media", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.cabinetFieldSet) { writer.WriteAttributeString("Cabinet", this.cabinetField); } if (this.compressionLevelFieldSet) { if ((this.compressionLevelField == CompressionLevelType.high)) { writer.WriteAttributeString("CompressionLevel", "high"); } if ((this.compressionLevelField == CompressionLevelType.low)) { writer.WriteAttributeString("CompressionLevel", "low"); } if ((this.compressionLevelField == CompressionLevelType.medium)) { writer.WriteAttributeString("CompressionLevel", "medium"); } if ((this.compressionLevelField == CompressionLevelType.mszip)) { writer.WriteAttributeString("CompressionLevel", "mszip"); } if ((this.compressionLevelField == CompressionLevelType.none)) { writer.WriteAttributeString("CompressionLevel", "none"); } } if (this.diskPromptFieldSet) { writer.WriteAttributeString("DiskPrompt", this.diskPromptField); } if (this.embedCabFieldSet) { if ((this.embedCabField == YesNoType.no)) { writer.WriteAttributeString("EmbedCab", "no"); } if ((this.embedCabField == YesNoType.yes)) { writer.WriteAttributeString("EmbedCab", "yes"); } } if (this.layoutFieldSet) { writer.WriteAttributeString("Layout", this.layoutField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.volumeLabelFieldSet) { writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); } if (this.sourceFieldSet) { writer.WriteAttributeString("Source", this.sourceField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Cabinet" == name)) { this.cabinetField = value; this.cabinetFieldSet = true; } if (("CompressionLevel" == name)) { this.compressionLevelField = Enums.ParseCompressionLevelType(value); this.compressionLevelFieldSet = true; } if (("DiskPrompt" == name)) { this.diskPromptField = value; this.diskPromptFieldSet = true; } if (("EmbedCab" == name)) { this.embedCabField = Enums.ParseYesNoType(value); this.embedCabFieldSet = true; } if (("Layout" == name)) { this.layoutField = value; this.layoutFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("VolumeLabel" == name)) { this.volumeLabelField = value; this.volumeLabelFieldSet = true; } if (("Source" == name)) { this.sourceField = value; this.sourceFieldSet = true; } } } /// /// MediaTeplate element describes information to automatically assign files to cabinets. /// A maximumum number of cabinets created is 999. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MediaTemplate : ISchemaElement, ISetAttributes { private string cabinetTemplateField; private bool cabinetTemplateFieldSet; private CompressionLevelType compressionLevelField; private bool compressionLevelFieldSet; private string diskPromptField; private bool diskPromptFieldSet; private YesNoType embedCabField; private bool embedCabFieldSet; private string volumeLabelField; private bool volumeLabelFieldSet; private int maximumUncompressedMediaSizeField; private bool maximumUncompressedMediaSizeFieldSet; private int maximumCabinetSizeForLargeFileSplittingField; private bool maximumCabinetSizeForLargeFileSplittingFieldSet; private ISchemaElement parentElement; /// /// Templated name of the cabinet if some or all of the files stored on the media are in /// a cabinet file. This name must begin with either a letter or an underscore, contain /// maximum of five characters and {0} in the cabinet name part and must end three character extension. /// The default is cab{0}.cab. /// public string CabinetTemplate { get { return this.cabinetTemplateField; } set { this.cabinetTemplateFieldSet = true; this.cabinetTemplateField = value; } } /// /// Indicates the compression level for the Media's cabinet. This attribute can /// only be used in conjunction with the Cabinet attribute. The default is 'mszip'. /// public CompressionLevelType CompressionLevel { get { return this.compressionLevelField; } set { this.compressionLevelFieldSet = true; this.compressionLevelField = value; } } /// /// The disk name, which is usually the visible text printed on the disk. This localizable text is used /// to prompt the user when this disk needs to be inserted. This value will be used in the "[1]" of the /// DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. /// public string DiskPrompt { get { return this.diskPromptField; } set { this.diskPromptFieldSet = true; this.diskPromptField = value; } } /// /// Instructs the binder to embed the cabinets in the product if 'yes'. /// public YesNoType EmbedCab { get { return this.embedCabField; } set { this.embedCabFieldSet = true; this.embedCabField = value; } } /// /// The label attributed to the volume. This is the volume label returned /// by the GetVolumeInformation function. If the SourceDir property refers /// to a removable (floppy or CD-ROM) volume, then this volume label is /// used to verify that the proper disk is in the drive before attempting /// to install files. The entry in this column must match the volume label /// of the physical media. /// public string VolumeLabel { get { return this.volumeLabelField; } set { this.volumeLabelFieldSet = true; this.volumeLabelField = value; } } /// /// Size of uncompressed files in each cabinet, in megabytes. WIX_MUMS environment variable /// can be used to override this value. Default value is 200 MB. /// public int MaximumUncompressedMediaSize { get { return this.maximumUncompressedMediaSizeField; } set { this.maximumUncompressedMediaSizeFieldSet = true; this.maximumUncompressedMediaSizeField = value; } } /// /// Maximum size of cabinet files in megabytes for large files. This attribute is used for packaging /// files that are larger than MaximumUncompressedMediaSize into smaller cabinets. If cabinet size /// exceed this value, then setting this attribute will cause the file to be split into multiple /// cabinets of this maximum size. For simply controlling cabinet size without file splitting use /// MaximumUncompressedMediaSize attribute. Setting this attribute will disable smart cabbing feature /// for this Fragment / Package. Setting WIX_MCSLFS environment variable can be used to override this /// value. Minimum allowed value of this attribute is 20 MB. Maximum allowed value and the Default /// value of this attribute is 2048 MB (2 GB). /// public int MaximumCabinetSizeForLargeFileSplitting { get { return this.maximumCabinetSizeForLargeFileSplittingField; } set { this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; this.maximumCabinetSizeForLargeFileSplittingField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a CompressionLevelType from a string. /// public static CompressionLevelType ParseCompressionLevelType(string value) { CompressionLevelType parsedValue; MediaTemplate.TryParseCompressionLevelType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a CompressionLevelType from a string. /// public static bool TryParseCompressionLevelType(string value, out CompressionLevelType parsedValue) { parsedValue = CompressionLevelType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("high" == value)) { parsedValue = CompressionLevelType.high; } else { if (("low" == value)) { parsedValue = CompressionLevelType.low; } else { if (("medium" == value)) { parsedValue = CompressionLevelType.medium; } else { if (("mszip" == value)) { parsedValue = CompressionLevelType.mszip; } else { if (("none" == value)) { parsedValue = CompressionLevelType.none; } else { parsedValue = CompressionLevelType.IllegalValue; return false; } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MediaTemplate", "http://wixtoolset.org/schemas/v4/wxs"); if (this.cabinetTemplateFieldSet) { writer.WriteAttributeString("CabinetTemplate", this.cabinetTemplateField); } if (this.compressionLevelFieldSet) { if ((this.compressionLevelField == CompressionLevelType.high)) { writer.WriteAttributeString("CompressionLevel", "high"); } if ((this.compressionLevelField == CompressionLevelType.low)) { writer.WriteAttributeString("CompressionLevel", "low"); } if ((this.compressionLevelField == CompressionLevelType.medium)) { writer.WriteAttributeString("CompressionLevel", "medium"); } if ((this.compressionLevelField == CompressionLevelType.mszip)) { writer.WriteAttributeString("CompressionLevel", "mszip"); } if ((this.compressionLevelField == CompressionLevelType.none)) { writer.WriteAttributeString("CompressionLevel", "none"); } } if (this.diskPromptFieldSet) { writer.WriteAttributeString("DiskPrompt", this.diskPromptField); } if (this.embedCabFieldSet) { if ((this.embedCabField == YesNoType.no)) { writer.WriteAttributeString("EmbedCab", "no"); } if ((this.embedCabField == YesNoType.yes)) { writer.WriteAttributeString("EmbedCab", "yes"); } } if (this.volumeLabelFieldSet) { writer.WriteAttributeString("VolumeLabel", this.volumeLabelField); } if (this.maximumUncompressedMediaSizeFieldSet) { writer.WriteAttributeString("MaximumUncompressedMediaSize", this.maximumUncompressedMediaSizeField.ToString(CultureInfo.InvariantCulture)); } if (this.maximumCabinetSizeForLargeFileSplittingFieldSet) { writer.WriteAttributeString("MaximumCabinetSizeForLargeFileSplitting", this.maximumCabinetSizeForLargeFileSplittingField.ToString(CultureInfo.InvariantCulture)); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("CabinetTemplate" == name)) { this.cabinetTemplateField = value; this.cabinetTemplateFieldSet = true; } if (("CompressionLevel" == name)) { this.compressionLevelField = MediaTemplate.ParseCompressionLevelType(value); this.compressionLevelFieldSet = true; } if (("DiskPrompt" == name)) { this.diskPromptField = value; this.diskPromptFieldSet = true; } if (("EmbedCab" == name)) { this.embedCabField = Enums.ParseYesNoType(value); this.embedCabFieldSet = true; } if (("VolumeLabel" == name)) { this.volumeLabelField = value; this.volumeLabelFieldSet = true; } if (("MaximumUncompressedMediaSize" == name)) { this.maximumUncompressedMediaSizeField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.maximumUncompressedMediaSizeFieldSet = true; } if (("MaximumCabinetSizeForLargeFileSplitting" == name)) { this.maximumCabinetSizeForLargeFileSplittingField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.maximumCabinetSizeForLargeFileSplittingFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum CompressionLevelType { IllegalValue = int.MaxValue, NotSet = -1, high, low, medium, mszip, none, } } /// /// This element has been deprecated. /// Use the Binary/@SuppressModularization, CustomAction/@SuppressModularization, or Property/@SuppressModularization attributes instead. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IgnoreModularization : ISchemaElement, ISetAttributes { private string nameField; private bool nameFieldSet; private TypeType typeField; private bool typeFieldSet; private ISchemaElement parentElement; /// /// The name of the item to ignore modularization for. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// The type of the item to ignore modularization for. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; IgnoreModularization.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("Action" == value)) { parsedValue = TypeType.Action; } else { if (("Property" == value)) { parsedValue = TypeType.Property; } else { if (("Directory" == value)) { parsedValue = TypeType.Directory; } else { parsedValue = TypeType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IgnoreModularization", "http://wixtoolset.org/schemas/v4/wxs"); if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.typeFieldSet) { if ((this.typeField == TypeType.Action)) { writer.WriteAttributeString("Type", "Action"); } if ((this.typeField == TypeType.Property)) { writer.WriteAttributeString("Type", "Property"); } if ((this.typeField == TypeType.Directory)) { writer.WriteAttributeString("Type", "Directory"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("Type" == name)) { this.typeField = IgnoreModularization.ParseTypeType(value); this.typeFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, Action, Property, Directory, } } /// /// Specifies a custom action to be added to the MSI CustomAction table. Various combinations of the attributes for this element /// correspond to different custom action types. For more information about custom actions see the /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CustomAction : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string binaryKeyField; private bool binaryKeyFieldSet; private string fileKeyField; private bool fileKeyFieldSet; private string propertyField; private bool propertyFieldSet; private string directoryField; private bool directoryFieldSet; private string dllEntryField; private bool dllEntryFieldSet; private string exeCommandField; private bool exeCommandFieldSet; private string jScriptCallField; private bool jScriptCallFieldSet; private string vBScriptCallField; private bool vBScriptCallFieldSet; private ScriptType scriptField; private bool scriptFieldSet; private YesNoType suppressModularizationField; private bool suppressModularizationFieldSet; private string valueField; private bool valueFieldSet; private string errorField; private bool errorFieldSet; private ReturnType returnField; private bool returnFieldSet; private ExecuteType executeField; private bool executeFieldSet; private YesNoType impersonateField; private bool impersonateFieldSet; private YesNoType patchUninstallField; private bool patchUninstallFieldSet; private YesNoType win64Field; private bool win64FieldSet; private YesNoType terminalServerAwareField; private bool terminalServerAwareFieldSet; private YesNoType hideTargetField; private bool hideTargetFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// The identifier of the custom action. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// This attribute is a reference to a Binary element with matching Id attribute. That binary stream contains /// the custom action for use during install. The custom action will not be installed into a target directory. This attribute is /// typically used with the DllEntry attribute to specify the custom action DLL to use for a type 1 custom action, with the ExeCommand /// attribute to specify a type 17 custom action that runs an embedded executable, or with the VBScriptCall or JScriptCall attributes /// to specify a type 5 or 6 custom action. /// public string BinaryKey { get { return this.binaryKeyField; } set { this.binaryKeyFieldSet = true; this.binaryKeyField = value; } } /// /// This attribute specifies a reference to a File element with matching Id attribute that /// will execute the custom action code in the file after the file is installed. This /// attribute is typically used with the ExeCommand attribute to specify a type 18 custom action /// that runs an installed executable, with the DllEntry attribute to specify an installed custom /// action DLL to use for a type 17 custom action, or with the VBScriptCall or JScriptCall /// attributes to specify a type 21 or 22 custom action. /// public string FileKey { get { return this.fileKeyField; } set { this.fileKeyFieldSet = true; this.fileKeyField = value; } } /// /// This attribute specifies a reference to a Property element with matching Id attribute that specifies the Property /// to be used or updated on execution of this custom action. This attribute is /// typically used with the Value attribute to create a type 51 custom action that parses /// the text in Value and places it into the specified Property. This attribute is also used with /// the ExeCommand attribute to create a type 50 custom action that uses the value of the /// given property to specify the path to the executable. Type 51 custom actions are often useful to /// pass values to a deferred custom action. /// See /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// This attribute specifies a reference to a Directory element with matching Id attribute containing a directory path. /// This attribute is typically used with the ExeCommand attribute to specify the source executable for a type 34 /// custom action, or with the Value attribute to specify a formatted string to place in the specified Directory /// table entry in a type 35 custom action. /// public string Directory { get { return this.directoryField; } set { this.directoryFieldSet = true; this.directoryField = value; } } /// /// This attribute specifies the name of a function in a custom action to execute. /// This attribute is used with the BinaryKey attribute to create a type 1 custom /// action, or with the FileKey attribute to create a type 17 custom action. /// public string DllEntry { get { return this.dllEntryField; } set { this.dllEntryFieldSet = true; this.dllEntryField = value; } } /// /// This attribute specifies the command line parameters to supply to an externally /// run executable. This attribute is typically used with the BinaryKey attribute for a type 2 custom action, /// the FileKey attribute for a type 18 custom action, the Property attribute for a type 50 custom action, /// or the Directory attribute for a type 34 custom action that specify the executable to run. /// public string ExeCommand { get { return this.exeCommandField; } set { this.exeCommandFieldSet = true; this.exeCommandField = value; } } /// /// This attribute specifies the name of the JScript function to execute in a script. The script must be /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this /// attribute must be specified in conjunction with the BinaryKey attribute. /// public string JScriptCall { get { return this.jScriptCallField; } set { this.jScriptCallFieldSet = true; this.jScriptCallField = value; } } /// /// This attribute specifies the name of the VBScript Subroutine to execute in a script. The script must be /// provided in a Binary element identified by the BinaryKey attribute described above. In other words, this /// attribute must be specified in conjunction with the BinaryKey attribute. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public string VBScriptCall { get { return this.vBScriptCallField; } set { this.vBScriptCallFieldSet = true; this.vBScriptCallField = value; } } /// /// Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. /// public ScriptType Script { get { return this.scriptField; } set { this.scriptFieldSet = true; this.scriptField = value; } } /// /// Use to suppress modularization of this custom action name in merge modules. /// This should only be necessary for table-driven custom actions because the /// table name which they interact with cannot be modularized, so there can only /// be one instance of the table. /// public YesNoType SuppressModularization { get { return this.suppressModularizationField; } set { this.suppressModularizationFieldSet = true; this.suppressModularizationField = value; } } /// /// This attribute specifies a string value to use in the custom action. This attribute /// must be used with the Property attribute to set the property as part of a /// type 51 custom action or with the Directory attribute to set a directory path in that /// table in a type 35 custom action. The value can be a literal value or derived from a /// Property element using the /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// This attribute specifies an index in the MSI Error table to use as an error message for a /// type 19 custom action that displays the error message and aborts a product's installation. /// public string Error { get { return this.errorField; } set { this.errorFieldSet = true; this.errorField = value; } } /// /// Set this attribute to set the return behavior of the custom action. /// public ReturnType Return { get { return this.returnField; } set { this.returnFieldSet = true; this.returnField = value; } } /// /// This attribute indicates the scheduling of the custom action. /// public ExecuteType Execute { get { return this.executeField; } set { this.executeFieldSet = true; this.executeField = value; } } /// /// This attribute specifies whether the Windows Installer, which executes as LocalSystem, /// should impersonate the user context of the installing user when executing this custom action. /// Typically the value should be 'yes', except when the custom action needs elevated privileges /// to apply changes to the machine. /// public YesNoType Impersonate { get { return this.impersonateField; } set { this.impersonateFieldSet = true; this.impersonateField = value; } } /// /// This attribute specifies that the Windows Installer, execute the custom action only when /// a patch is being uninstalled. These custom actions should also be conditioned using the /// MSIPATCHREMOVE property to ensure proper down level (less than Windows Installer 4.5) /// behavior. /// public YesNoType PatchUninstall { get { return this.patchUninstallField; } set { this.patchUninstallFieldSet = true; this.patchUninstallField = value; } } /// /// Specifies that a script custom action targets a 64-bit platform. Valid only when used with /// the Script, VBScriptCall, and JScriptCall attributes. /// The default value is based on the platform set by the -arch switch to candle.exe /// or the InstallerPlatform property in a .wixproj MSBuild project: /// For x86 and ARM, the default value is 'no'. /// For x64 and IA64, the default value is 'yes'. /// public YesNoType Win64 { get { return this.win64Field; } set { this.win64FieldSet = true; this.win64Field = value; } } /// /// This attribute specifies controls whether the custom action will impersonate the /// installing user during per-machine installs on Terminal Server machines. /// Deferred execution custom actions that do not specify this attribute, or explicitly set it 'no', /// will run with no user impersonation on Terminal Server machines during /// per-machine installations. This attribute is only applicable when installing on the /// Windows Server 2003 family. /// public YesNoType TerminalServerAware { get { return this.terminalServerAwareField; } set { this.terminalServerAwareFieldSet = true; this.terminalServerAwareField = value; } } /// /// Ensures the installer does not log the CustomActionData for the deferred custom action. /// public YesNoType HideTarget { get { return this.hideTargetField; } set { this.hideTargetFieldSet = true; this.hideTargetField = value; } } /// /// The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ScriptType from a string. /// public static ScriptType ParseScriptType(string value) { ScriptType parsedValue; CustomAction.TryParseScriptType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ScriptType from a string. /// public static bool TryParseScriptType(string value, out ScriptType parsedValue) { parsedValue = ScriptType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("jscript" == value)) { parsedValue = ScriptType.jscript; } else { if (("vbscript" == value)) { parsedValue = ScriptType.vbscript; } else { parsedValue = ScriptType.IllegalValue; return false; } } return true; } /// /// Parses a ReturnType from a string. /// public static ReturnType ParseReturnType(string value) { ReturnType parsedValue; CustomAction.TryParseReturnType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ReturnType from a string. /// public static bool TryParseReturnType(string value, out ReturnType parsedValue) { parsedValue = ReturnType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("asyncNoWait" == value)) { parsedValue = ReturnType.asyncNoWait; } else { if (("asyncWait" == value)) { parsedValue = ReturnType.asyncWait; } else { if (("check" == value)) { parsedValue = ReturnType.check; } else { if (("ignore" == value)) { parsedValue = ReturnType.ignore; } else { parsedValue = ReturnType.IllegalValue; return false; } } } } return true; } /// /// Parses a ExecuteType from a string. /// public static ExecuteType ParseExecuteType(string value) { ExecuteType parsedValue; CustomAction.TryParseExecuteType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ExecuteType from a string. /// public static bool TryParseExecuteType(string value, out ExecuteType parsedValue) { parsedValue = ExecuteType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("commit" == value)) { parsedValue = ExecuteType.commit; } else { if (("deferred" == value)) { parsedValue = ExecuteType.deferred; } else { if (("firstSequence" == value)) { parsedValue = ExecuteType.firstSequence; } else { if (("immediate" == value)) { parsedValue = ExecuteType.immediate; } else { if (("oncePerProcess" == value)) { parsedValue = ExecuteType.oncePerProcess; } else { if (("rollback" == value)) { parsedValue = ExecuteType.rollback; } else { if (("secondSequence" == value)) { parsedValue = ExecuteType.secondSequence; } else { parsedValue = ExecuteType.IllegalValue; return false; } } } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CustomAction", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.binaryKeyFieldSet) { writer.WriteAttributeString("BinaryKey", this.binaryKeyField); } if (this.fileKeyFieldSet) { writer.WriteAttributeString("FileKey", this.fileKeyField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.directoryFieldSet) { writer.WriteAttributeString("Directory", this.directoryField); } if (this.dllEntryFieldSet) { writer.WriteAttributeString("DllEntry", this.dllEntryField); } if (this.exeCommandFieldSet) { writer.WriteAttributeString("ExeCommand", this.exeCommandField); } if (this.jScriptCallFieldSet) { writer.WriteAttributeString("JScriptCall", this.jScriptCallField); } if (this.vBScriptCallFieldSet) { writer.WriteAttributeString("VBScriptCall", this.vBScriptCallField); } if (this.scriptFieldSet) { if ((this.scriptField == ScriptType.jscript)) { writer.WriteAttributeString("Script", "jscript"); } if ((this.scriptField == ScriptType.vbscript)) { writer.WriteAttributeString("Script", "vbscript"); } } if (this.suppressModularizationFieldSet) { if ((this.suppressModularizationField == YesNoType.no)) { writer.WriteAttributeString("SuppressModularization", "no"); } if ((this.suppressModularizationField == YesNoType.yes)) { writer.WriteAttributeString("SuppressModularization", "yes"); } } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.errorFieldSet) { writer.WriteAttributeString("Error", this.errorField); } if (this.returnFieldSet) { if ((this.returnField == ReturnType.asyncNoWait)) { writer.WriteAttributeString("Return", "asyncNoWait"); } if ((this.returnField == ReturnType.asyncWait)) { writer.WriteAttributeString("Return", "asyncWait"); } if ((this.returnField == ReturnType.check)) { writer.WriteAttributeString("Return", "check"); } if ((this.returnField == ReturnType.ignore)) { writer.WriteAttributeString("Return", "ignore"); } } if (this.executeFieldSet) { if ((this.executeField == ExecuteType.commit)) { writer.WriteAttributeString("Execute", "commit"); } if ((this.executeField == ExecuteType.deferred)) { writer.WriteAttributeString("Execute", "deferred"); } if ((this.executeField == ExecuteType.firstSequence)) { writer.WriteAttributeString("Execute", "firstSequence"); } if ((this.executeField == ExecuteType.immediate)) { writer.WriteAttributeString("Execute", "immediate"); } if ((this.executeField == ExecuteType.oncePerProcess)) { writer.WriteAttributeString("Execute", "oncePerProcess"); } if ((this.executeField == ExecuteType.rollback)) { writer.WriteAttributeString("Execute", "rollback"); } if ((this.executeField == ExecuteType.secondSequence)) { writer.WriteAttributeString("Execute", "secondSequence"); } } if (this.impersonateFieldSet) { if ((this.impersonateField == YesNoType.no)) { writer.WriteAttributeString("Impersonate", "no"); } if ((this.impersonateField == YesNoType.yes)) { writer.WriteAttributeString("Impersonate", "yes"); } } if (this.patchUninstallFieldSet) { if ((this.patchUninstallField == YesNoType.no)) { writer.WriteAttributeString("PatchUninstall", "no"); } if ((this.patchUninstallField == YesNoType.yes)) { writer.WriteAttributeString("PatchUninstall", "yes"); } } if (this.win64FieldSet) { if ((this.win64Field == YesNoType.no)) { writer.WriteAttributeString("Win64", "no"); } if ((this.win64Field == YesNoType.yes)) { writer.WriteAttributeString("Win64", "yes"); } } if (this.terminalServerAwareFieldSet) { if ((this.terminalServerAwareField == YesNoType.no)) { writer.WriteAttributeString("TerminalServerAware", "no"); } if ((this.terminalServerAwareField == YesNoType.yes)) { writer.WriteAttributeString("TerminalServerAware", "yes"); } } if (this.hideTargetFieldSet) { if ((this.hideTargetField == YesNoType.no)) { writer.WriteAttributeString("HideTarget", "no"); } if ((this.hideTargetField == YesNoType.yes)) { writer.WriteAttributeString("HideTarget", "yes"); } } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("BinaryKey" == name)) { this.binaryKeyField = value; this.binaryKeyFieldSet = true; } if (("FileKey" == name)) { this.fileKeyField = value; this.fileKeyFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("Directory" == name)) { this.directoryField = value; this.directoryFieldSet = true; } if (("DllEntry" == name)) { this.dllEntryField = value; this.dllEntryFieldSet = true; } if (("ExeCommand" == name)) { this.exeCommandField = value; this.exeCommandFieldSet = true; } if (("JScriptCall" == name)) { this.jScriptCallField = value; this.jScriptCallFieldSet = true; } if (("VBScriptCall" == name)) { this.vBScriptCallField = value; this.vBScriptCallFieldSet = true; } if (("Script" == name)) { this.scriptField = CustomAction.ParseScriptType(value); this.scriptFieldSet = true; } if (("SuppressModularization" == name)) { this.suppressModularizationField = Enums.ParseYesNoType(value); this.suppressModularizationFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Error" == name)) { this.errorField = value; this.errorFieldSet = true; } if (("Return" == name)) { this.returnField = CustomAction.ParseReturnType(value); this.returnFieldSet = true; } if (("Execute" == name)) { this.executeField = CustomAction.ParseExecuteType(value); this.executeFieldSet = true; } if (("Impersonate" == name)) { this.impersonateField = Enums.ParseYesNoType(value); this.impersonateFieldSet = true; } if (("PatchUninstall" == name)) { this.patchUninstallField = Enums.ParseYesNoType(value); this.patchUninstallFieldSet = true; } if (("Win64" == name)) { this.win64Field = Enums.ParseYesNoType(value); this.win64FieldSet = true; } if (("TerminalServerAware" == name)) { this.terminalServerAwareField = Enums.ParseYesNoType(value); this.terminalServerAwareFieldSet = true; } if (("HideTarget" == name)) { this.hideTargetField = Enums.ParseYesNoType(value); this.hideTargetFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ScriptType { IllegalValue = int.MaxValue, NotSet = -1, jscript, vbscript, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ReturnType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Indicates that the custom action will run asyncronously and execution may continue after the installer terminates. /// asyncNoWait, /// /// Indicates that the custom action will run asynchronously but the installer will wait for the return code at sequence end. /// asyncWait, /// /// Indicates that the custom action will run synchronously and the return code will be checked for success. This is the default. /// check, /// /// Indicates that the custom action will run synchronously and the return code will not be checked. /// ignore, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ExecuteType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Indicates that the custom action will run after successful completion of the installation script (at the end of the installation). /// commit, /// /// Indicates that the custom action runs in-script (possibly with elevated privileges). /// deferred, /// /// Indicates that the custom action will only run in the first sequence that runs it. /// firstSequence, /// /// Indicates that the custom action will run during normal processing time with user privileges. This is the default. /// immediate, /// /// Indicates that the custom action will only run in the first sequence that runs it in the same process. /// oncePerProcess, /// /// Indicates that a custom action will run in the rollback sequence when a failure /// occurs during installation, usually to undo changes made by a deferred custom action. /// rollback, /// /// Indicates that a custom action should be run a second time if it was previously run in an earlier sequence. /// secondSequence, } } /// /// This will cause the entire contents of the Fragment containing the referenced CustomAction to be /// included in the installer database. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CustomActionRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of the CustomAction to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CustomActionRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Sets a Directory to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in /// the InstallUISequence and InstallExecuteSequence. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SetDirectory : ISchemaElement, ISetAttributes { private string actionField; private bool actionFieldSet; private string idField; private bool idFieldSet; private SequenceType sequenceField; private bool sequenceFieldSet; private string valueField; private bool valueFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case /// where multiple SetDirectory elements target the same Id (probably with mutually exclusive conditions). /// public string Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// This attribute specifies a reference to a Directory element with matching Id attribute. The path of the Directory will be set to /// the Value attribute. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Controls which sequences the Directory assignment is sequenced in. /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. /// For 'ui', the assignment is scheduled in the InstallUISequence. /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. /// The default is 'both'. /// public SequenceType Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } /// /// This attribute specifies a string value to assign to the Directory. The value can be a literal value or derived from a /// Property element using the /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// The condition that determines whether the Directory is set. If the condition evaluates to false, the SetDirectory is skipped. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SetDirectory", "http://wixtoolset.org/schemas/v4/wxs"); if (this.actionFieldSet) { writer.WriteAttributeString("Action", this.actionField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sequenceFieldSet) { if ((this.sequenceField == SequenceType.both)) { writer.WriteAttributeString("Sequence", "both"); } if ((this.sequenceField == SequenceType.first)) { writer.WriteAttributeString("Sequence", "first"); } if ((this.sequenceField == SequenceType.execute)) { writer.WriteAttributeString("Sequence", "execute"); } if ((this.sequenceField == SequenceType.ui)) { writer.WriteAttributeString("Sequence", "ui"); } } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Action" == name)) { this.actionField = value; this.actionFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = Enums.ParseSequenceType(value); this.sequenceFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Sets a Property to a particular value. This is accomplished by creating a Type 51 custom action that is appropriately scheduled in /// the InstallUISequence and InstallExecuteSequence. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SetProperty : ISchemaElement, ISetAttributes { private string actionField; private bool actionFieldSet; private string afterField; private bool afterFieldSet; private string beforeField; private bool beforeFieldSet; private string idField; private bool idFieldSet; private SequenceType sequenceField; private bool sequenceFieldSet; private string valueField; private bool valueFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// By default the action is "Set" + Id attribute's value. This optional attribute can override the action name in the case /// where multiple SetProperty elements target the same Id (probably with mutually exclusive conditions). /// public string Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with the Before attribute. A Before or After attribute is required when setting a Property. /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with the After attribute. A Before or After attribute is required when setting a Property. /// public string Before { get { return this.beforeField; } set { this.beforeFieldSet = true; this.beforeField = value; } } /// /// This attribute specifies the Property to set to the Value. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Controls which sequences the Property assignment is sequenced in. /// For 'execute', the assignment is scheduled in the InstallExecuteSequence. /// For 'ui', the assignment is scheduled in the InstallUISequence. /// For 'first', the assignment is scheduled in the InstallUISequence or the InstallExecuteSequence if the InstallUISequence is skipped at install time. /// For 'both', the assignment is scheduled in both the InstallUISequence and the InstallExecuteSequence. /// The default is 'both'. /// public SequenceType Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } /// /// This attribute specifies a string value to assign to the Property. The value can be a literal value or derived from a /// Property element using the /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// The condition that determines whether the Property is set. If the condition evaluates to false, the Set is skipped. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SetProperty", "http://wixtoolset.org/schemas/v4/wxs"); if (this.actionFieldSet) { writer.WriteAttributeString("Action", this.actionField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.beforeFieldSet) { writer.WriteAttributeString("Before", this.beforeField); } if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sequenceFieldSet) { if ((this.sequenceField == SequenceType.both)) { writer.WriteAttributeString("Sequence", "both"); } if ((this.sequenceField == SequenceType.first)) { writer.WriteAttributeString("Sequence", "first"); } if ((this.sequenceField == SequenceType.execute)) { writer.WriteAttributeString("Sequence", "execute"); } if ((this.sequenceField == SequenceType.ui)) { writer.WriteAttributeString("Sequence", "ui"); } } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Action" == name)) { this.actionField = value; this.actionFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("Before" == name)) { this.beforeField = value; this.beforeFieldSet = true; } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = Enums.ParseSequenceType(value); this.sequenceFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// This will cause the entire contents of the Fragment containing the referenced PatchFamily to be /// used in the process of creating a patch. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchFamilyRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string productCodeField; private bool productCodeFieldSet; private ISchemaElement parentElement; /// /// The identifier of the PatchFamily to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Specifies the ProductCode of the product that this family applies to. /// public string ProductCode { get { return this.productCodeField; } set { this.productCodeFieldSet = true; this.productCodeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchFamilyRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.productCodeFieldSet) { writer.WriteAttributeString("ProductCode", this.productCodeField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("ProductCode" == name)) { this.productCodeField = value; this.productCodeFieldSet = true; } } } /// /// Sets the ProductID property to the full product identifier. This action must be sequenced before the user interface wizard in the InstallUISequence table and before the RegisterUser action in the InstallExecuteSequence table. If the product identifier has already been validated successfully, the ValidateProductID action does nothing. The ValidateProductID action always returns a success, whether or not the product identifier is valid, so that the product identifier can be entered on the command line the first time the product is run. The product identifier can be validated without having the user reenter this information by setting the PIDKEY property on the command line or by using a transform. The display of the dialog box requesting the user to enter the product identifier can then be made conditional upon the presence of the ProductID property, which is set when the PIDKEY property is validated. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ValidateProductID : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ValidateProductID", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Initiates the internal installation costing process. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the CostInitialize action to make all final cost calculations available to the installer through the Component table. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CostInitialize : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CostInitialize", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Initiates dynamic costing of standard installation actions. Any standard or custom actions that affect costing should sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action. Then call the CostFinalize action following the FileCost action to make all final cost calculations available to the installer through the Component table. The CostInitialize action must be executed before the FileCost action. The installer then determines the disk-space cost of every file in the File table, on a per-component basis, taking both volume clustering and the presence of existing files that may need to be overwritten into account. All actions that consume or release disk space are also considered. If an existing file is found, a file version check is performed to determine whether the new file actually needs to be installed or not. If the existing file is of an equal or greater version number, the existing file is not overwritten and no disk-space cost is incurred. In all cases, the installer uses the results of version number checking to set the installation state of each file. The FileCost action initializes cost calculation with the installer. Actual dynamic costing does not occur until the CostFinalize action is executed. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FileCost : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FileCost", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). This isolates the application from other copies of the component that may be installed to a shared location on the computer. The action refers to each record of the IsolatedComponent table and associates the files of the component listed in the Component_Shared field with the component listed in the Component_Application field. The installer installs the files of Component_Shared into the same directory as Component_Application. The installer generates a file in this directory, zero bytes in length, having the short filename name of the key file for Component_Application (typically this is the same file name as the .exe) appended with .local. The IsolatedComponent action does not affect the installation of Component_Application. Uninstalling Component_Application also removes the Component_Shared files and the .local file from the directory. The IsolateComponents action can be used only in the InstallUISequence table and the InstallExecuteSequence table. This action must come after the CostInitialize action and before the CostFinalize action. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class IsolateComponents : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("IsolateComponents", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Ends the internal installation costing process begun by the CostInitialize action. Any standard or custom actions that affect costing should be sequenced before the CostInitialize action. Call the FileCost action immediately following the CostInitialize action and then call the CostFinalize action to make all final cost calculations available to the installer through the Component table. The CostFinalize action must be executed before starting any user interface sequence which allows the user to view or modify Feature table selections or directories. The CostFinalize action queries the Condition table to determine which features are scheduled to be installed. Costing is done for each component in the Component table. The CostFinalize action also verifies that all the target directories are writable before allowing the installation to continue. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CostFinalize : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CostFinalize", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SetODBCFolders : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SetODBCFolders", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Used for upgrading or installing over an existing application. Reads feature states from existing application and sets these feature states for the pending installation. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MigrateFeatureStates : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MigrateFeatureStates", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Initiates the execution sequence. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ExecuteAction : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ExecuteAction", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Verifies that all costed volumes have enough space for the installation. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallValidate : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallValidate", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Marks the beginning of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallInitialize : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallInitialize", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AllocateRegistrySpace : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AllocateRegistrySpace", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers and unregisters components, their key paths, and the component clients. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ProcessComponents : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ProcessComponents", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnpublishComponents : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnpublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the unadvertisement of CLR and Win32 assemblies that are being removed. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MsiUnpublishAssemblies : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MsiUnpublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes selection-state and feature-component mapping information from the registry. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnpublishFeatures : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnpublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Stops system services. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class StopServices : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("StopServices", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DeleteServices : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DeleteServices", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterComPlus : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SelfUnregModules : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SelfUnregModules", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterTypeLibraries : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes the data sources, translators, and drivers listed for removal during the installation. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveODBC : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveODBC", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterFonts : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes a registry value that has been authored into the registry table if the associated component was installed locally or as run from source, and is now set to be uninstalled. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveRegistryValues : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the removal of COM class information from the system registry. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterClassInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the removal of extension-related information from the system registry. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterExtensionInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterProgIdInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UnregisterMIMEInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UnregisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveIniValues : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveIniValues", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveShortcuts : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveEnvironmentStrings : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveDuplicateFiles : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveDuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveFiles : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Removes any folders linked to components set to be removed or run from source. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveFolders : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveFolders", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Creates empty folders for components that are set to be installed. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CreateFolders : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CreateFolders", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Locates existing files on the system and moves or copies those files to a new location. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MoveFiles : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MoveFiles", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallAdminPackage : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallAdminPackage", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Copies files specified in the File table from the source directory to the destination directory. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallFiles : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallFiles", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DuplicateFiles : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DuplicateFiles", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Queries the Patch table to determine which patches are to be applied. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PatchFiles : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PatchFiles", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Binds each executable or DLL that must be bound to the DLLs imported by it. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class BindImage : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("BindImage", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CreateShortcuts : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CreateShortcuts", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterClassInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterClassInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterExtensionInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterExtensionInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterProgIdInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterProgIdInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterMIMEInfo : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterMIMEInfo", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Sets up an application's registry information. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class WriteRegistryValues : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("WriteRegistryValues", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Writes the .ini file information that the application needs written to its .ini files. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class WriteIniValues : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("WriteIniValues", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class WriteEnvironmentStrings : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("WriteEnvironmentStrings", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterFonts : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterFonts", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallODBC : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallODBC", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers type libraries with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterTypeLibraries : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterTypeLibraries", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Processes all modules listed in the SelfReg table and registers all installed modules with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class SelfRegModules : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("SelfRegModules", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers COM+ applications. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterComPlus : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterComPlus", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers a service for the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallServices : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallServices", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Starts system services. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class StartServices : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("StartServices", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers the user information with the installer to identify the user of a product. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterUser : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterUser", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Registers the product information with the installer. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RegisterProduct : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RegisterProduct", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PublishComponents : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PublishComponents", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MsiPublishAssemblies : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MsiPublishAssemblies", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PublishFeatures : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PublishFeatures", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class PublishProduct : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("PublishProduct", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Marks the end of a sequence of actions that change the system. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallFinalize : ActionSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallFinalize", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Uses file signatures to search for existing versions of products. The AppSearch action may use this information to determine where upgrades are to be installed. The AppSearch action can also be used to set a property to the existing value of an registry or .ini file entry. AppSearch should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents The AppSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The AppSearch action searches for file signatures using the CompLocator table first, the RegLocator table next, then the IniLocator table, and finally the DrLocator table. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AppSearch : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AppSearch", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The CCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents the CCPSearch action from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The CCPSearch action must come before the RMCCPSearch action. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CCPSearch : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. The RMCCPSearch action should be authored into the InstallUISequence table and InstallExecuteSequence table. The installer prevents RMCCPSearch from running in the InstallExecuteSequence sequence if the action has already run in InstallUISequence sequence. The RMCCPSearch action requires the CCP_DRIVE property to be set to the root path on the removable volume that has the installation for any of the qualifying products. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RMCCPSearch : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RMCCPSearch", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Queries the LaunchCondition table and evaluates each conditional statement recorded there. If any of these conditional statements fail, an error message is displayed to the user and the installation is terminated. The LaunchConditions action is optional. This action is normally the first in the sequence, but the AppSearch Action may be sequenced before the LaunchConditions action. If there are launch conditions that do not apply to all installation modes, the appropriate installation mode property should be used in a conditional expression in the appropriate sequence table. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class LaunchConditions : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("LaunchConditions", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Runs through each record of the Upgrade table in sequence and compares the upgrade code, product version, and language in each row to products installed on the system. When FindRelatedProducts detects a correspondence between the upgrade information and an installed product, it appends the product code to the property specified in the ActionProperty column of the UpgradeTable. The FindRelatedProducts action only runs the first time the product is installed. The FindRelatedProducts action does not run during maintenance mode or uninstallation. FindRelatedProducts should be authored into the InstallUISequence table and InstallExecuteSequence tables. The installer prevents FindRelatedProducts from running in InstallExecuteSequence if the action has already run in InstallUISequence. The FindRelatedProducts action must come before the MigrateFeatureStates action and the RemoveExistingProducts action. The condition for this action may be specified in the element's inner text. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class FindRelatedProducts : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("FindRelatedProducts", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallExecute : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallExecute", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. Should only be used after InstallExecute. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallExecuteAgain : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallExecuteAgain", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Disables rollback for the remainder of the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DisableRollback : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DisableRollback", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RemoveExistingProducts : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RemoveExistingProducts", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Prompts the user to restart the system at the end of installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ScheduleReboot : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ScheduleReboot", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Prompts the user for a restart of the system during the installation. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ForceReboot : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ForceReboot", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Special actions don't have a built-in sequence number and thus must appear relative to another action. The suggested way to do this is by using the Before or After attribute. InstallExecute and InstallExecuteAgain can optionally appear anywhere between InstallInitialize and InstallFinalize. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ResolveSource : ActionModuleSequenceType, ISchemaElement { /// /// Processes this element and all child elements into an XmlWriter. /// public override void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ResolveSource", "http://wixtoolset.org/schemas/v4/wxs"); base.OutputXml(writer); writer.WriteEndElement(); } } /// /// Use to sequence a custom action. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Custom : ISchemaElement, ISetAttributes { private string actionField; private bool actionFieldSet; private ExitType onExitField; private bool onExitFieldSet; private string beforeField; private bool beforeFieldSet; private string afterField; private bool afterFieldSet; private YesNoType overridableField; private bool overridableFieldSet; private int sequenceField; private bool sequenceFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// The action to which the Custom element applies. /// public string Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// Mutually exclusive with Before, After, and Sequence attributes /// public ExitType OnExit { get { return this.onExitField; } set { this.onExitFieldSet = true; this.onExitField = value; } } /// /// The name of the standard or custom action before which this action should be performed. Mutually exclusive with OnExit, After, and Sequence attributes /// public string Before { get { return this.beforeField; } set { this.beforeFieldSet = true; this.beforeField = value; } } /// /// The name of the standard or custom action after which this action should be performed. Mutually exclusive with Before, OnExit, and Sequence attributes /// public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// If "yes", the sequencing of this action may be overridden by sequencing elsewhere. /// public YesNoType Overridable { get { return this.overridableField; } set { this.overridableFieldSet = true; this.overridableField = value; } } /// /// The sequence number for this action. Mutually exclusive with Before, After, and OnExit attributes /// public int Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } /// /// Text node specifies the condition of the action. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Custom", "http://wixtoolset.org/schemas/v4/wxs"); if (this.actionFieldSet) { writer.WriteAttributeString("Action", this.actionField); } if (this.onExitFieldSet) { if ((this.onExitField == ExitType.success)) { writer.WriteAttributeString("OnExit", "success"); } if ((this.onExitField == ExitType.cancel)) { writer.WriteAttributeString("OnExit", "cancel"); } if ((this.onExitField == ExitType.error)) { writer.WriteAttributeString("OnExit", "error"); } if ((this.onExitField == ExitType.suspend)) { writer.WriteAttributeString("OnExit", "suspend"); } } if (this.beforeFieldSet) { writer.WriteAttributeString("Before", this.beforeField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.overridableFieldSet) { if ((this.overridableField == YesNoType.no)) { writer.WriteAttributeString("Overridable", "no"); } if ((this.overridableField == YesNoType.yes)) { writer.WriteAttributeString("Overridable", "yes"); } } if (this.sequenceFieldSet) { writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Action" == name)) { this.actionField = value; this.actionFieldSet = true; } if (("OnExit" == name)) { this.onExitField = Enums.ParseExitType(value); this.onExitFieldSet = true; } if (("Before" == name)) { this.beforeField = value; this.beforeFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("Overridable" == name)) { this.overridableField = Enums.ParseYesNoType(value); this.overridableFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sequenceFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Show : ISchemaElement, ISetAttributes { private string dialogField; private bool dialogFieldSet; private ExitType onExitField; private bool onExitFieldSet; private string beforeField; private bool beforeFieldSet; private string afterField; private bool afterFieldSet; private YesNoType overridableField; private bool overridableFieldSet; private int sequenceField; private bool sequenceFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; public string Dialog { get { return this.dialogField; } set { this.dialogFieldSet = true; this.dialogField = value; } } /// /// mutually exclusive with Before, After, and Sequence attributes /// public ExitType OnExit { get { return this.onExitField; } set { this.onExitFieldSet = true; this.onExitField = value; } } public string Before { get { return this.beforeField; } set { this.beforeFieldSet = true; this.beforeField = value; } } public string After { get { return this.afterField; } set { this.afterFieldSet = true; this.afterField = value; } } /// /// If "yes", the sequencing of this dialog may be overridden by sequencing elsewhere. /// public YesNoType Overridable { get { return this.overridableField; } set { this.overridableFieldSet = true; this.overridableField = value; } } public int Sequence { get { return this.sequenceField; } set { this.sequenceFieldSet = true; this.sequenceField = value; } } public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Show", "http://wixtoolset.org/schemas/v4/wxs"); if (this.dialogFieldSet) { writer.WriteAttributeString("Dialog", this.dialogField); } if (this.onExitFieldSet) { if ((this.onExitField == ExitType.success)) { writer.WriteAttributeString("OnExit", "success"); } if ((this.onExitField == ExitType.cancel)) { writer.WriteAttributeString("OnExit", "cancel"); } if ((this.onExitField == ExitType.error)) { writer.WriteAttributeString("OnExit", "error"); } if ((this.onExitField == ExitType.suspend)) { writer.WriteAttributeString("OnExit", "suspend"); } } if (this.beforeFieldSet) { writer.WriteAttributeString("Before", this.beforeField); } if (this.afterFieldSet) { writer.WriteAttributeString("After", this.afterField); } if (this.overridableFieldSet) { if ((this.overridableField == YesNoType.no)) { writer.WriteAttributeString("Overridable", "no"); } if ((this.overridableField == YesNoType.yes)) { writer.WriteAttributeString("Overridable", "yes"); } } if (this.sequenceFieldSet) { writer.WriteAttributeString("Sequence", this.sequenceField.ToString(CultureInfo.InvariantCulture)); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Dialog" == name)) { this.dialogField = value; this.dialogFieldSet = true; } if (("OnExit" == name)) { this.onExitField = Enums.ParseExitType(value); this.onExitFieldSet = true; } if (("Before" == name)) { this.beforeField = value; this.beforeFieldSet = true; } if (("After" == name)) { this.afterField = value; this.afterFieldSet = true; } if (("Overridable" == name)) { this.overridableField = Enums.ParseYesNoType(value); this.overridableFieldSet = true; } if (("Sequence" == name)) { this.sequenceField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.sequenceFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public InstallUISequence() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Custom" == childName)) { childValue = new Custom(); } if (("Show" == childName)) { childValue = new Show(); } if (("ScheduleReboot" == childName)) { childValue = new ScheduleReboot(); } if (("LaunchConditions" == childName)) { childValue = new LaunchConditions(); } if (("FindRelatedProducts" == childName)) { childValue = new FindRelatedProducts(); } if (("AppSearch" == childName)) { childValue = new AppSearch(); } if (("CCPSearch" == childName)) { childValue = new CCPSearch(); } if (("RMCCPSearch" == childName)) { childValue = new RMCCPSearch(); } if (("ValidateProductID" == childName)) { childValue = new ValidateProductID(); } if (("CostInitialize" == childName)) { childValue = new CostInitialize(); } if (("FileCost" == childName)) { childValue = new FileCost(); } if (("IsolateComponents" == childName)) { childValue = new IsolateComponents(); } if (("ResolveSource" == childName)) { childValue = new ResolveSource(); } if (("CostFinalize" == childName)) { childValue = new CostFinalize(); } if (("MigrateFeatureStates" == childName)) { childValue = new MigrateFeatureStates(); } if (("ExecuteAction" == childName)) { childValue = new ExecuteAction(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallUISequence", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstallExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public InstallExecuteSequence() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ScheduleReboot))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ForceReboot))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FindRelatedProducts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AppSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CCPSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RMCCPSearch))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ValidateProductID))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(IsolateComponents))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SetODBCFolders))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MigrateFeatureStates))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(AllocateRegistrySpace))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProcessComponents))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishComponents))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnpublishFeatures))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StopServices))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DeleteServices))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterComPlus))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfUnregModules))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterTypeLibraries))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveODBC))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterFonts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveRegistryValues))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterClassInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterExtensionInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterProgIdInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UnregisterMIMEInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveIniValues))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveShortcuts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveEnvironmentStrings))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveDuplicateFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveFolders))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateFolders))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MoveFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DuplicateFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BindImage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteRegistryValues))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteIniValues))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(WriteEnvironmentStrings))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterFonts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallODBC))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterTypeLibraries))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(SelfRegModules))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterComPlus))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallServices))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(StartServices))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterUser))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProduct))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RemoveExistingProducts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DisableRollback))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecute))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallExecuteAgain))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiUnpublishAssemblies))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Custom" == childName)) { childValue = new Custom(); } if (("ScheduleReboot" == childName)) { childValue = new ScheduleReboot(); } if (("ForceReboot" == childName)) { childValue = new ForceReboot(); } if (("ResolveSource" == childName)) { childValue = new ResolveSource(); } if (("LaunchConditions" == childName)) { childValue = new LaunchConditions(); } if (("FindRelatedProducts" == childName)) { childValue = new FindRelatedProducts(); } if (("AppSearch" == childName)) { childValue = new AppSearch(); } if (("CCPSearch" == childName)) { childValue = new CCPSearch(); } if (("RMCCPSearch" == childName)) { childValue = new RMCCPSearch(); } if (("ValidateProductID" == childName)) { childValue = new ValidateProductID(); } if (("CostInitialize" == childName)) { childValue = new CostInitialize(); } if (("FileCost" == childName)) { childValue = new FileCost(); } if (("IsolateComponents" == childName)) { childValue = new IsolateComponents(); } if (("CostFinalize" == childName)) { childValue = new CostFinalize(); } if (("SetODBCFolders" == childName)) { childValue = new SetODBCFolders(); } if (("MigrateFeatureStates" == childName)) { childValue = new MigrateFeatureStates(); } if (("InstallValidate" == childName)) { childValue = new InstallValidate(); } if (("InstallInitialize" == childName)) { childValue = new InstallInitialize(); } if (("AllocateRegistrySpace" == childName)) { childValue = new AllocateRegistrySpace(); } if (("ProcessComponents" == childName)) { childValue = new ProcessComponents(); } if (("UnpublishComponents" == childName)) { childValue = new UnpublishComponents(); } if (("UnpublishFeatures" == childName)) { childValue = new UnpublishFeatures(); } if (("StopServices" == childName)) { childValue = new StopServices(); } if (("DeleteServices" == childName)) { childValue = new DeleteServices(); } if (("UnregisterComPlus" == childName)) { childValue = new UnregisterComPlus(); } if (("SelfUnregModules" == childName)) { childValue = new SelfUnregModules(); } if (("UnregisterTypeLibraries" == childName)) { childValue = new UnregisterTypeLibraries(); } if (("RemoveODBC" == childName)) { childValue = new RemoveODBC(); } if (("UnregisterFonts" == childName)) { childValue = new UnregisterFonts(); } if (("RemoveRegistryValues" == childName)) { childValue = new RemoveRegistryValues(); } if (("UnregisterClassInfo" == childName)) { childValue = new UnregisterClassInfo(); } if (("UnregisterExtensionInfo" == childName)) { childValue = new UnregisterExtensionInfo(); } if (("UnregisterProgIdInfo" == childName)) { childValue = new UnregisterProgIdInfo(); } if (("UnregisterMIMEInfo" == childName)) { childValue = new UnregisterMIMEInfo(); } if (("RemoveIniValues" == childName)) { childValue = new RemoveIniValues(); } if (("RemoveShortcuts" == childName)) { childValue = new RemoveShortcuts(); } if (("RemoveEnvironmentStrings" == childName)) { childValue = new RemoveEnvironmentStrings(); } if (("RemoveDuplicateFiles" == childName)) { childValue = new RemoveDuplicateFiles(); } if (("RemoveFiles" == childName)) { childValue = new RemoveFiles(); } if (("RemoveFolders" == childName)) { childValue = new RemoveFolders(); } if (("CreateFolders" == childName)) { childValue = new CreateFolders(); } if (("MoveFiles" == childName)) { childValue = new MoveFiles(); } if (("InstallFiles" == childName)) { childValue = new InstallFiles(); } if (("DuplicateFiles" == childName)) { childValue = new DuplicateFiles(); } if (("PatchFiles" == childName)) { childValue = new PatchFiles(); } if (("BindImage" == childName)) { childValue = new BindImage(); } if (("CreateShortcuts" == childName)) { childValue = new CreateShortcuts(); } if (("RegisterClassInfo" == childName)) { childValue = new RegisterClassInfo(); } if (("RegisterExtensionInfo" == childName)) { childValue = new RegisterExtensionInfo(); } if (("RegisterProgIdInfo" == childName)) { childValue = new RegisterProgIdInfo(); } if (("RegisterMIMEInfo" == childName)) { childValue = new RegisterMIMEInfo(); } if (("WriteRegistryValues" == childName)) { childValue = new WriteRegistryValues(); } if (("WriteIniValues" == childName)) { childValue = new WriteIniValues(); } if (("WriteEnvironmentStrings" == childName)) { childValue = new WriteEnvironmentStrings(); } if (("RegisterFonts" == childName)) { childValue = new RegisterFonts(); } if (("InstallODBC" == childName)) { childValue = new InstallODBC(); } if (("RegisterTypeLibraries" == childName)) { childValue = new RegisterTypeLibraries(); } if (("SelfRegModules" == childName)) { childValue = new SelfRegModules(); } if (("RegisterComPlus" == childName)) { childValue = new RegisterComPlus(); } if (("InstallServices" == childName)) { childValue = new InstallServices(); } if (("StartServices" == childName)) { childValue = new StartServices(); } if (("RegisterUser" == childName)) { childValue = new RegisterUser(); } if (("RegisterProduct" == childName)) { childValue = new RegisterProduct(); } if (("PublishComponents" == childName)) { childValue = new PublishComponents(); } if (("PublishFeatures" == childName)) { childValue = new PublishFeatures(); } if (("PublishProduct" == childName)) { childValue = new PublishProduct(); } if (("InstallFinalize" == childName)) { childValue = new InstallFinalize(); } if (("RemoveExistingProducts" == childName)) { childValue = new RemoveExistingProducts(); } if (("DisableRollback" == childName)) { childValue = new DisableRollback(); } if (("InstallExecute" == childName)) { childValue = new InstallExecute(); } if (("InstallExecuteAgain" == childName)) { childValue = new InstallExecuteAgain(); } if (("MsiPublishAssemblies" == childName)) { childValue = new MsiPublishAssemblies(); } if (("MsiUnpublishAssemblies" == childName)) { childValue = new MsiUnpublishAssemblies(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstallExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AdminUISequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public AdminUISequence() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Show))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ExecuteAction))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Custom" == childName)) { childValue = new Custom(); } if (("Show" == childName)) { childValue = new Show(); } if (("CostInitialize" == childName)) { childValue = new CostInitialize(); } if (("FileCost" == childName)) { childValue = new FileCost(); } if (("CostFinalize" == childName)) { childValue = new CostFinalize(); } if (("ExecuteAction" == childName)) { childValue = new ExecuteAction(); } if (("InstallValidate" == childName)) { childValue = new InstallValidate(); } if (("InstallInitialize" == childName)) { childValue = new InstallInitialize(); } if (("InstallAdminPackage" == childName)) { childValue = new InstallAdminPackage(); } if (("InstallFiles" == childName)) { childValue = new InstallFiles(); } if (("InstallFinalize" == childName)) { childValue = new InstallFinalize(); } if (("LaunchConditions" == childName)) { childValue = new LaunchConditions(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AdminUISequence", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AdminExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public AdminExecuteSequence() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(FileCost))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallAdminPackage))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PatchFiles))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(LaunchConditions))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ResolveSource))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Custom" == childName)) { childValue = new Custom(); } if (("CostInitialize" == childName)) { childValue = new CostInitialize(); } if (("FileCost" == childName)) { childValue = new FileCost(); } if (("CostFinalize" == childName)) { childValue = new CostFinalize(); } if (("InstallValidate" == childName)) { childValue = new InstallValidate(); } if (("InstallInitialize" == childName)) { childValue = new InstallInitialize(); } if (("InstallAdminPackage" == childName)) { childValue = new InstallAdminPackage(); } if (("InstallFiles" == childName)) { childValue = new InstallFiles(); } if (("PatchFiles" == childName)) { childValue = new PatchFiles(); } if (("InstallFinalize" == childName)) { childValue = new InstallFinalize(); } if (("LaunchConditions" == childName)) { childValue = new LaunchConditions(); } if (("ResolveSource" == childName)) { childValue = new ResolveSource(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AdminExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class AdvertiseExecuteSequence : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public AdvertiseExecuteSequence() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CostFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Custom))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallValidate))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallInitialize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(CreateShortcuts))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterClassInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterExtensionInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterMIMEInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RegisterProgIdInfo))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishComponents))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishFeatures))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PublishProduct))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(InstallFinalize))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(MsiPublishAssemblies))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("CostInitialize" == childName)) { childValue = new CostInitialize(); } if (("CostFinalize" == childName)) { childValue = new CostFinalize(); } if (("Custom" == childName)) { childValue = new Custom(); } if (("InstallValidate" == childName)) { childValue = new InstallValidate(); } if (("InstallInitialize" == childName)) { childValue = new InstallInitialize(); } if (("CreateShortcuts" == childName)) { childValue = new CreateShortcuts(); } if (("RegisterClassInfo" == childName)) { childValue = new RegisterClassInfo(); } if (("RegisterExtensionInfo" == childName)) { childValue = new RegisterExtensionInfo(); } if (("RegisterMIMEInfo" == childName)) { childValue = new RegisterMIMEInfo(); } if (("RegisterProgIdInfo" == childName)) { childValue = new RegisterProgIdInfo(); } if (("PublishComponents" == childName)) { childValue = new PublishComponents(); } if (("PublishFeatures" == childName)) { childValue = new PublishFeatures(); } if (("PublishProduct" == childName)) { childValue = new PublishProduct(); } if (("InstallFinalize" == childName)) { childValue = new InstallFinalize(); } if (("MsiPublishAssemblies" == childName)) { childValue = new MsiPublishAssemblies(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("AdvertiseExecuteSequence", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// Binary data used for CustomAction elements and UI controls. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Binary : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string srcField; private bool srcFieldSet; private YesNoType suppressModularizationField; private bool suppressModularizationFieldSet; private ISchemaElement parentElement; public Binary() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ISchemaElement))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Path to the binary file. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } /// /// Use to suppress modularization of this Binary identifier in merge modules. /// public YesNoType SuppressModularization { get { return this.suppressModularizationField; } set { this.suppressModularizationFieldSet = true; this.suppressModularizationField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Binary", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.suppressModularizationFieldSet) { if ((this.suppressModularizationField == YesNoType.no)) { writer.WriteAttributeString("SuppressModularization", "no"); } if ((this.suppressModularizationField == YesNoType.yes)) { writer.WriteAttributeString("SuppressModularization", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("SuppressModularization" == name)) { this.suppressModularizationField = Enums.ParseYesNoType(value); this.suppressModularizationFieldSet = true; } } } /// /// Icon used for Shortcut, ProgId, or Class elements (but not UI controls) /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Icon : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private string srcField; private bool srcFieldSet; private ISchemaElement parentElement; /// /// The Id cannot be longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Path to the icon file. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Icon", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class EmbeddedChainer : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string commandLineField; private bool commandLineFieldSet; private string binarySourceField; private bool binarySourceFieldSet; private string fileSourceField; private bool fileSourceFieldSet; private string propertySourceField; private bool propertySourceFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Unique identifier for embedded chainer. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Value to append to the transaction handle and passed to the chainer executable. /// public string CommandLine { get { return this.commandLineField; } set { this.commandLineFieldSet = true; this.commandLineField = value; } } /// /// Reference to the Binary element that contains the chainer executable. Mutually exclusive with /// the FileSource and PropertySource attributes. /// public string BinarySource { get { return this.binarySourceField; } set { this.binarySourceFieldSet = true; this.binarySourceField = value; } } /// /// Reference to the File element that is the chainer executable. Mutually exclusive with /// the BinarySource and PropertySource attributes. /// public string FileSource { get { return this.fileSourceField; } set { this.fileSourceFieldSet = true; this.fileSourceField = value; } } /// /// Reference to a Property that resolves to the full path to the chainer executable. Mutually exclusive with /// the BinarySource and FileSource attributes. /// public string PropertySource { get { return this.propertySourceField; } set { this.propertySourceFieldSet = true; this.propertySourceField = value; } } /// /// Element value is the condition. CDATA may be used to when a condition contains many XML characters /// that must be escaped. It is important to note that each EmbeddedChainer element must have a mutually exclusive condition /// to ensure that only one embedded chainer will execute at a time. If the conditions are not mutually exclusive the chainer /// that executes is undeterministic. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("EmbeddedChainer", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.commandLineFieldSet) { writer.WriteAttributeString("CommandLine", this.commandLineField); } if (this.binarySourceFieldSet) { writer.WriteAttributeString("BinarySource", this.binarySourceField); } if (this.fileSourceFieldSet) { writer.WriteAttributeString("FileSource", this.fileSourceField); } if (this.propertySourceFieldSet) { writer.WriteAttributeString("PropertySource", this.propertySourceField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("CommandLine" == name)) { this.commandLineField = value; this.commandLineFieldSet = true; } if (("BinarySource" == name)) { this.binarySourceField = value; this.binarySourceFieldSet = true; } if (("FileSource" == name)) { this.fileSourceField = value; this.fileSourceFieldSet = true; } if (("PropertySource" == name)) { this.propertySourceField = value; this.propertySourceFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Reference to an EmbeddedChainer element. This will force the entire referenced Fragment's contents /// to be included in the installer database. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class EmbeddedChainerRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("EmbeddedChainerRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Element value is the condition. Use CDATA if message contains delimiter characters. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class EmbeddedUI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private YesNoType ignoreFatalExitField; private bool ignoreFatalExitFieldSet; private YesNoType ignoreErrorField; private bool ignoreErrorFieldSet; private YesNoType ignoreWarningField; private bool ignoreWarningFieldSet; private YesNoType ignoreUserField; private bool ignoreUserFieldSet; private YesNoType ignoreInfoField; private bool ignoreInfoFieldSet; private YesNoType ignoreFilesInUseField; private bool ignoreFilesInUseFieldSet; private YesNoType ignoreResolveSourceField; private bool ignoreResolveSourceFieldSet; private YesNoType ignoreOutOfDiskSpaceField; private bool ignoreOutOfDiskSpaceFieldSet; private YesNoType ignoreActionStartField; private bool ignoreActionStartFieldSet; private YesNoType ignoreActionDataField; private bool ignoreActionDataFieldSet; private YesNoType ignoreProgressField; private bool ignoreProgressFieldSet; private YesNoType ignoreCommonDataField; private bool ignoreCommonDataFieldSet; private YesNoType ignoreInitializeField; private bool ignoreInitializeFieldSet; private YesNoType ignoreTerminateField; private bool ignoreTerminateFieldSet; private YesNoType ignoreShowDialogField; private bool ignoreShowDialogFieldSet; private YesNoType ignoreRMFilesInUseField; private bool ignoreRMFilesInUseFieldSet; private YesNoType ignoreInstallStartField; private bool ignoreInstallStartFieldSet; private YesNoType ignoreInstallEndField; private bool ignoreInstallEndFieldSet; private string nameField; private bool nameFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private YesNoType supportBasicUIField; private bool supportBasicUIFieldSet; private ISchemaElement parentElement; public EmbeddedUI() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(EmbeddedUIResource))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for embedded UI.If this attribute is not specified the Name attribute or the file name /// portion of the SourceFile attribute will be used. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_FATALEXIT messages. /// public YesNoType IgnoreFatalExit { get { return this.ignoreFatalExitField; } set { this.ignoreFatalExitFieldSet = true; this.ignoreFatalExitField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_ERROR messages. /// public YesNoType IgnoreError { get { return this.ignoreErrorField; } set { this.ignoreErrorFieldSet = true; this.ignoreErrorField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_WARNING messages. /// public YesNoType IgnoreWarning { get { return this.ignoreWarningField; } set { this.ignoreWarningFieldSet = true; this.ignoreWarningField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_USER messages. /// public YesNoType IgnoreUser { get { return this.ignoreUserField; } set { this.ignoreUserFieldSet = true; this.ignoreUserField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_INFO messages. /// public YesNoType IgnoreInfo { get { return this.ignoreInfoField; } set { this.ignoreInfoFieldSet = true; this.ignoreInfoField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_FILESINUSE messages. /// public YesNoType IgnoreFilesInUse { get { return this.ignoreFilesInUseField; } set { this.ignoreFilesInUseFieldSet = true; this.ignoreFilesInUseField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_RESOLVESOURCE messages. /// public YesNoType IgnoreResolveSource { get { return this.ignoreResolveSourceField; } set { this.ignoreResolveSourceFieldSet = true; this.ignoreResolveSourceField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_OUTOFDISKSPACE messages. /// public YesNoType IgnoreOutOfDiskSpace { get { return this.ignoreOutOfDiskSpaceField; } set { this.ignoreOutOfDiskSpaceFieldSet = true; this.ignoreOutOfDiskSpaceField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONSTART messages. /// public YesNoType IgnoreActionStart { get { return this.ignoreActionStartField; } set { this.ignoreActionStartFieldSet = true; this.ignoreActionStartField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_ACTIONDATA messages. /// public YesNoType IgnoreActionData { get { return this.ignoreActionDataField; } set { this.ignoreActionDataFieldSet = true; this.ignoreActionDataField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_PROGRESS messages. /// public YesNoType IgnoreProgress { get { return this.ignoreProgressField; } set { this.ignoreProgressFieldSet = true; this.ignoreProgressField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_COMMONDATA messages. /// public YesNoType IgnoreCommonData { get { return this.ignoreCommonDataField; } set { this.ignoreCommonDataFieldSet = true; this.ignoreCommonDataField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_INITIALIZE messages. /// public YesNoType IgnoreInitialize { get { return this.ignoreInitializeField; } set { this.ignoreInitializeFieldSet = true; this.ignoreInitializeField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_TERMINATE messages. /// public YesNoType IgnoreTerminate { get { return this.ignoreTerminateField; } set { this.ignoreTerminateFieldSet = true; this.ignoreTerminateField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_SHOWDIALOG messages. /// public YesNoType IgnoreShowDialog { get { return this.ignoreShowDialogField; } set { this.ignoreShowDialogFieldSet = true; this.ignoreShowDialogField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_RMFILESINUSE messages. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public YesNoType IgnoreRMFilesInUse { get { return this.ignoreRMFilesInUseField; } set { this.ignoreRMFilesInUseFieldSet = true; this.ignoreRMFilesInUseField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLSTART messages. /// public YesNoType IgnoreInstallStart { get { return this.ignoreInstallStartField; } set { this.ignoreInstallStartFieldSet = true; this.ignoreInstallStartField = value; } } /// /// Embedded UI will not recieve any INSTALLLOGMODE_INSTALLEND messages. /// public YesNoType IgnoreInstallEnd { get { return this.ignoreInstallEndField; } set { this.ignoreInstallEndFieldSet = true; this.ignoreInstallEndField = value; } } /// /// The name for the embedded UI DLL when it is extracted from the package and executed. (Windows Installer /// does not support the typical short filename and long filename combination for embedded UI files as it /// does for other kinds of files.) If this attribute is not specified the file name portion of the SourceFile /// attribute will be used. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Path to the binary file that is the embedded UI. This must be a DLL that exports the following /// three entry points: InitializeEmbeddedUI, EmbeddedUIHandler and ShutdownEmbeddedUI. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } /// /// Set yes to allow the Windows Installer to display the embedded UI during basic UI level installation. /// public YesNoType SupportBasicUI { get { return this.supportBasicUIField; } set { this.supportBasicUIFieldSet = true; this.supportBasicUIField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("EmbeddedUIResource" == childName)) { childValue = new EmbeddedUIResource(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("EmbeddedUI", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.ignoreFatalExitFieldSet) { if ((this.ignoreFatalExitField == YesNoType.no)) { writer.WriteAttributeString("IgnoreFatalExit", "no"); } if ((this.ignoreFatalExitField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreFatalExit", "yes"); } } if (this.ignoreErrorFieldSet) { if ((this.ignoreErrorField == YesNoType.no)) { writer.WriteAttributeString("IgnoreError", "no"); } if ((this.ignoreErrorField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreError", "yes"); } } if (this.ignoreWarningFieldSet) { if ((this.ignoreWarningField == YesNoType.no)) { writer.WriteAttributeString("IgnoreWarning", "no"); } if ((this.ignoreWarningField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreWarning", "yes"); } } if (this.ignoreUserFieldSet) { if ((this.ignoreUserField == YesNoType.no)) { writer.WriteAttributeString("IgnoreUser", "no"); } if ((this.ignoreUserField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreUser", "yes"); } } if (this.ignoreInfoFieldSet) { if ((this.ignoreInfoField == YesNoType.no)) { writer.WriteAttributeString("IgnoreInfo", "no"); } if ((this.ignoreInfoField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreInfo", "yes"); } } if (this.ignoreFilesInUseFieldSet) { if ((this.ignoreFilesInUseField == YesNoType.no)) { writer.WriteAttributeString("IgnoreFilesInUse", "no"); } if ((this.ignoreFilesInUseField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreFilesInUse", "yes"); } } if (this.ignoreResolveSourceFieldSet) { if ((this.ignoreResolveSourceField == YesNoType.no)) { writer.WriteAttributeString("IgnoreResolveSource", "no"); } if ((this.ignoreResolveSourceField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreResolveSource", "yes"); } } if (this.ignoreOutOfDiskSpaceFieldSet) { if ((this.ignoreOutOfDiskSpaceField == YesNoType.no)) { writer.WriteAttributeString("IgnoreOutOfDiskSpace", "no"); } if ((this.ignoreOutOfDiskSpaceField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreOutOfDiskSpace", "yes"); } } if (this.ignoreActionStartFieldSet) { if ((this.ignoreActionStartField == YesNoType.no)) { writer.WriteAttributeString("IgnoreActionStart", "no"); } if ((this.ignoreActionStartField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreActionStart", "yes"); } } if (this.ignoreActionDataFieldSet) { if ((this.ignoreActionDataField == YesNoType.no)) { writer.WriteAttributeString("IgnoreActionData", "no"); } if ((this.ignoreActionDataField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreActionData", "yes"); } } if (this.ignoreProgressFieldSet) { if ((this.ignoreProgressField == YesNoType.no)) { writer.WriteAttributeString("IgnoreProgress", "no"); } if ((this.ignoreProgressField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreProgress", "yes"); } } if (this.ignoreCommonDataFieldSet) { if ((this.ignoreCommonDataField == YesNoType.no)) { writer.WriteAttributeString("IgnoreCommonData", "no"); } if ((this.ignoreCommonDataField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreCommonData", "yes"); } } if (this.ignoreInitializeFieldSet) { if ((this.ignoreInitializeField == YesNoType.no)) { writer.WriteAttributeString("IgnoreInitialize", "no"); } if ((this.ignoreInitializeField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreInitialize", "yes"); } } if (this.ignoreTerminateFieldSet) { if ((this.ignoreTerminateField == YesNoType.no)) { writer.WriteAttributeString("IgnoreTerminate", "no"); } if ((this.ignoreTerminateField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreTerminate", "yes"); } } if (this.ignoreShowDialogFieldSet) { if ((this.ignoreShowDialogField == YesNoType.no)) { writer.WriteAttributeString("IgnoreShowDialog", "no"); } if ((this.ignoreShowDialogField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreShowDialog", "yes"); } } if (this.ignoreRMFilesInUseFieldSet) { if ((this.ignoreRMFilesInUseField == YesNoType.no)) { writer.WriteAttributeString("IgnoreRMFilesInUse", "no"); } if ((this.ignoreRMFilesInUseField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreRMFilesInUse", "yes"); } } if (this.ignoreInstallStartFieldSet) { if ((this.ignoreInstallStartField == YesNoType.no)) { writer.WriteAttributeString("IgnoreInstallStart", "no"); } if ((this.ignoreInstallStartField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreInstallStart", "yes"); } } if (this.ignoreInstallEndFieldSet) { if ((this.ignoreInstallEndField == YesNoType.no)) { writer.WriteAttributeString("IgnoreInstallEnd", "no"); } if ((this.ignoreInstallEndField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreInstallEnd", "yes"); } } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.supportBasicUIFieldSet) { if ((this.supportBasicUIField == YesNoType.no)) { writer.WriteAttributeString("SupportBasicUI", "no"); } if ((this.supportBasicUIField == YesNoType.yes)) { writer.WriteAttributeString("SupportBasicUI", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("IgnoreFatalExit" == name)) { this.ignoreFatalExitField = Enums.ParseYesNoType(value); this.ignoreFatalExitFieldSet = true; } if (("IgnoreError" == name)) { this.ignoreErrorField = Enums.ParseYesNoType(value); this.ignoreErrorFieldSet = true; } if (("IgnoreWarning" == name)) { this.ignoreWarningField = Enums.ParseYesNoType(value); this.ignoreWarningFieldSet = true; } if (("IgnoreUser" == name)) { this.ignoreUserField = Enums.ParseYesNoType(value); this.ignoreUserFieldSet = true; } if (("IgnoreInfo" == name)) { this.ignoreInfoField = Enums.ParseYesNoType(value); this.ignoreInfoFieldSet = true; } if (("IgnoreFilesInUse" == name)) { this.ignoreFilesInUseField = Enums.ParseYesNoType(value); this.ignoreFilesInUseFieldSet = true; } if (("IgnoreResolveSource" == name)) { this.ignoreResolveSourceField = Enums.ParseYesNoType(value); this.ignoreResolveSourceFieldSet = true; } if (("IgnoreOutOfDiskSpace" == name)) { this.ignoreOutOfDiskSpaceField = Enums.ParseYesNoType(value); this.ignoreOutOfDiskSpaceFieldSet = true; } if (("IgnoreActionStart" == name)) { this.ignoreActionStartField = Enums.ParseYesNoType(value); this.ignoreActionStartFieldSet = true; } if (("IgnoreActionData" == name)) { this.ignoreActionDataField = Enums.ParseYesNoType(value); this.ignoreActionDataFieldSet = true; } if (("IgnoreProgress" == name)) { this.ignoreProgressField = Enums.ParseYesNoType(value); this.ignoreProgressFieldSet = true; } if (("IgnoreCommonData" == name)) { this.ignoreCommonDataField = Enums.ParseYesNoType(value); this.ignoreCommonDataFieldSet = true; } if (("IgnoreInitialize" == name)) { this.ignoreInitializeField = Enums.ParseYesNoType(value); this.ignoreInitializeFieldSet = true; } if (("IgnoreTerminate" == name)) { this.ignoreTerminateField = Enums.ParseYesNoType(value); this.ignoreTerminateFieldSet = true; } if (("IgnoreShowDialog" == name)) { this.ignoreShowDialogField = Enums.ParseYesNoType(value); this.ignoreShowDialogFieldSet = true; } if (("IgnoreRMFilesInUse" == name)) { this.ignoreRMFilesInUseField = Enums.ParseYesNoType(value); this.ignoreRMFilesInUseFieldSet = true; } if (("IgnoreInstallStart" == name)) { this.ignoreInstallStartField = Enums.ParseYesNoType(value); this.ignoreInstallStartFieldSet = true; } if (("IgnoreInstallEnd" == name)) { this.ignoreInstallEndField = Enums.ParseYesNoType(value); this.ignoreInstallEndFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("SupportBasicUI" == name)) { this.supportBasicUIField = Enums.ParseYesNoType(value); this.supportBasicUIFieldSet = true; } } } /// /// Defines a resource for use by the embedded UI. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class EmbeddedUIResource : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string nameField; private bool nameFieldSet; private string sourceFileField; private bool sourceFileFieldSet; private ISchemaElement parentElement; /// /// Identifier for the embedded UI resource. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The name for the resource when it is extracted from the package for use by the embedded UI DLL. (Windows /// Installer does not support the typical short filename and long filename combination for embedded UI files /// as it does for other kinds of files.) If this attribute is not specified the Id attribute will be used. /// public string Name { get { return this.nameField; } set { this.nameFieldSet = true; this.nameField = value; } } /// /// Path to the binary file that is the embedded UI resource. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("EmbeddedUIResource", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.nameFieldSet) { writer.WriteAttributeString("Name", this.nameField); } if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Name" == name)) { this.nameField = value; this.nameFieldSet = true; } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Error : ISchemaElement, ISetAttributes { private int idField; private bool idFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Number of the error for which a message is being provided. See MSI SDK for error definitions. /// public int Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Element value is Message, use CDATA if message contains delimiter characters /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Error", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField.ToString(CultureInfo.InvariantCulture)); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.idFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Publish : ISchemaElement, ISetAttributes { private string controlField; private bool controlFieldSet; private string dialogField; private bool dialogFieldSet; private string eventField; private bool eventFieldSet; private string orderField; private bool orderFieldSet; private string propertyField; private bool propertyFieldSet; private string valueField; private bool valueFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// The parent Control for this Publish element, should only be specified when this element is a child of the UI element. /// public string Control { get { return this.controlField; } set { this.controlFieldSet = true; this.controlField = value; } } /// /// The parent Dialog for this Publish element, should only be specified when this element is a child of the UI element. /// This attribute will create a reference to the specified Dialog, so an additional DialogRef is not necessary. /// public string Dialog { get { return this.dialogField; } set { this.dialogFieldSet = true; this.dialogField = value; } } /// /// Set this attribute's value to one of the standard control events to trigger that event. /// Either this attribute or the Property attribute must be set, but not both at the same time. /// public string Event { get { return this.eventField; } set { this.eventFieldSet = true; this.eventField = value; } } /// /// This attribute should only need to be set if this element is nested under a UI element in order to /// control the order in which this publish event will be started. /// If this element is nested under a Control element, the default value will be one greater than any /// previous Publish element's order (the first element's default value is 1). /// If this element is nested under a UI element, the default value is always 1 (it does not get a /// default value based on any previous Publish elements). /// public string Order { get { return this.orderField; } set { this.orderFieldSet = true; this.orderField = value; } } /// /// Set this attribute's value to a property name to set that property. /// Either this attribute or the Event attribute must be set, but not both at the same time. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// If the Property attribute is specified, set the value of this attribute to the new value for the property. /// To set a property to null, do not set this attribute (the ControlEvent Argument column will be set to '{}'). /// Otherwise, this attribute's value should be the argument for the event specified in the Event attribute. /// If the event doesn't take an attribute, a common value to use is "0". /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// The element value is the optional Condition expression. /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Publish", "http://wixtoolset.org/schemas/v4/wxs"); if (this.controlFieldSet) { writer.WriteAttributeString("Control", this.controlField); } if (this.dialogFieldSet) { writer.WriteAttributeString("Dialog", this.dialogField); } if (this.eventFieldSet) { writer.WriteAttributeString("Event", this.eventField); } if (this.orderFieldSet) { writer.WriteAttributeString("Order", this.orderField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Control" == name)) { this.controlField = value; this.controlFieldSet = true; } if (("Dialog" == name)) { this.dialogField = value; this.dialogFieldSet = true; } if (("Event" == name)) { this.eventField = value; this.eventFieldSet = true; } if (("Order" == name)) { this.orderField = value; this.orderFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Sets attributes for events in the EventMapping table /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Subscribe : ISchemaElement, ISetAttributes { private string eventField; private bool eventFieldSet; private string attributeField; private bool attributeFieldSet; private ISchemaElement parentElement; /// /// must be one of the standard control events' /// public string Event { get { return this.eventField; } set { this.eventFieldSet = true; this.eventField = value; } } /// /// if not present can only handle enable, disable, hide, unhide events /// public string Attribute { get { return this.attributeField; } set { this.attributeFieldSet = true; this.attributeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Subscribe", "http://wixtoolset.org/schemas/v4/wxs"); if (this.eventFieldSet) { writer.WriteAttributeString("Event", this.eventField); } if (this.attributeFieldSet) { writer.WriteAttributeString("Attribute", this.attributeField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Event" == name)) { this.eventField = value; this.eventFieldSet = true; } if (("Attribute" == name)) { this.attributeField = value; this.attributeFieldSet = true; } } } /// /// An alternative to using the Text attribute when the value contains special XML characters like <, >, or &. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Text : ISchemaElement, ISetAttributes { private string sourceFileField; private bool sourceFileFieldSet; private string srcField; private bool srcFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Instructs the text to be imported from a file instead of the element value during the binding process. /// public string SourceFile { get { return this.sourceFileField; } set { this.sourceFileFieldSet = true; this.sourceFileField = value; } } [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly")] public string src { get { return this.srcField; } set { this.srcFieldSet = true; this.srcField = value; } } public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Text", "http://wixtoolset.org/schemas/v4/wxs"); if (this.sourceFileFieldSet) { writer.WriteAttributeString("SourceFile", this.sourceFileField); } if (this.srcFieldSet) { writer.WriteAttributeString("src", this.srcField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("SourceFile" == name)) { this.sourceFileField = value; this.sourceFileFieldSet = true; } if (("src" == name)) { this.srcField = value; this.srcFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Contains the controls that appear on each dialog. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Control : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string typeField; private bool typeFieldSet; private string xField; private bool xFieldSet; private string yField; private bool yFieldSet; private string widthField; private bool widthFieldSet; private string heightField; private bool heightFieldSet; private string propertyField; private bool propertyFieldSet; private string textField; private bool textFieldSet; private string helpField; private bool helpFieldSet; private string toolTipField; private bool toolTipFieldSet; private string checkBoxValueField; private bool checkBoxValueFieldSet; private string checkBoxPropertyRefField; private bool checkBoxPropertyRefFieldSet; private YesNoType tabSkipField; private bool tabSkipFieldSet; private YesNoType defaultField; private bool defaultFieldSet; private YesNoType cancelField; private bool cancelFieldSet; private YesNoType hiddenField; private bool hiddenFieldSet; private YesNoType disabledField; private bool disabledFieldSet; private YesNoType sunkenField; private bool sunkenFieldSet; private YesNoType indirectField; private bool indirectFieldSet; private YesNoType integerField; private bool integerFieldSet; private YesNoType rightToLeftField; private bool rightToLeftFieldSet; private YesNoType rightAlignedField; private bool rightAlignedFieldSet; private YesNoType leftScrollField; private bool leftScrollFieldSet; private YesNoType transparentField; private bool transparentFieldSet; private YesNoType noPrefixField; private bool noPrefixFieldSet; private YesNoType noWrapField; private bool noWrapFieldSet; private YesNoType formatSizeField; private bool formatSizeFieldSet; private YesNoType userLanguageField; private bool userLanguageFieldSet; private YesNoType multilineField; private bool multilineFieldSet; private YesNoType passwordField; private bool passwordFieldSet; private YesNoType progressBlocksField; private bool progressBlocksFieldSet; private YesNoType removableField; private bool removableFieldSet; private YesNoType fixedField; private bool fixedFieldSet; private YesNoType remoteField; private bool remoteFieldSet; private YesNoType cDROMField; private bool cDROMFieldSet; private YesNoType rAMDiskField; private bool rAMDiskFieldSet; private YesNoType floppyField; private bool floppyFieldSet; private YesNoType showRollbackCostField; private bool showRollbackCostFieldSet; private YesNoType sortedField; private bool sortedFieldSet; private YesNoType comboListField; private bool comboListFieldSet; private YesNoType imageField; private bool imageFieldSet; private IconSizeType iconSizeField; private bool iconSizeFieldSet; private YesNoType fixedSizeField; private bool fixedSizeFieldSet; private YesNoType iconField; private bool iconFieldSet; private YesNoType bitmapField; private bool bitmapFieldSet; private YesNoType pushLikeField; private bool pushLikeFieldSet; private YesNoType hasBorderField; private bool hasBorderFieldSet; private YesNoType elevationShieldField; private bool elevationShieldFieldSet; private ISchemaElement parentElement; public Control() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Text))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ComboBox))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListBox))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListView))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButtonGroup))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Property))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Binary))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Condition))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); childCollection1.AddItem(new ElementCollection.ChoiceItem(typeof(Subscribe))); childCollection0.AddCollection(childCollection1); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Combined with the Dialog Id to make up the primary key of the Control table. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The type of the control. Could be one of the following: Billboard, Bitmap, CheckBox, ComboBox, DirectoryCombo, DirectoryList, Edit, GroupBox, Hyperlink, Icon, Line, ListBox, ListView, MaskedEdit, PathEdit, ProgressBar, PushButton, RadioButtonGroup, ScrollableText, SelectionTree, Text, VolumeCostList, VolumeSelectCombo /// public string Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// Horizontal coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. /// public string X { get { return this.xField; } set { this.xFieldSet = true; this.xField = value; } } /// /// Vertical coordinate of the upper-left corner of the rectangular boundary of the control. This must be a non-negative number. /// public string Y { get { return this.yField; } set { this.yFieldSet = true; this.yField = value; } } /// /// Width of the rectangular boundary of the control. This must be a non-negative number. /// public string Width { get { return this.widthField; } set { this.widthFieldSet = true; this.widthField = value; } } /// /// Height of the rectangular boundary of the control. This must be a non-negative number. /// public string Height { get { return this.heightField; } set { this.heightFieldSet = true; this.heightField = value; } } /// /// The name of a defined property to be linked to this control. This column is required for active controls. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } /// /// A localizable string used to set the initial text contained in a control. This attribute can contain a formatted string that is processed at install time to insert the values of properties using [PropertyName] syntax. Also supported are environment variables, file installation paths, and component installation directories; see /// public string Text { get { return this.textField; } set { this.textFieldSet = true; this.textField = value; } } /// /// This attribute is reserved for future use. There is no need to use this until Windows Installer uses it for something. /// public string Help { get { return this.helpField; } set { this.helpFieldSet = true; this.helpField = value; } } /// /// The string used for the Tooltip. /// public string ToolTip { get { return this.toolTipField; } set { this.toolTipFieldSet = true; this.toolTipField = value; } } /// /// This attribute is only valid for CheckBox Controls. When set, the linked Property will be set to this value when the check box is checked. /// public string CheckBoxValue { get { return this.checkBoxValueField; } set { this.checkBoxValueFieldSet = true; this.checkBoxValueField = value; } } /// /// This attribute is only valid for CheckBox controls. The value is the name of a Property that was already used as the Property for another CheckBox control. The Property attribute cannot be specified. The attribute exists to support multiple checkboxes on different dialogs being tied to the same property. /// public string CheckBoxPropertyRef { get { return this.checkBoxPropertyRefField; } set { this.checkBoxPropertyRefFieldSet = true; this.checkBoxPropertyRefField = value; } } /// /// Set this attribute to "yes" to cause this Control to be skipped in the tab sequence. /// public YesNoType TabSkip { get { return this.tabSkipField; } set { this.tabSkipFieldSet = true; this.tabSkipField = value; } } /// /// Set this attribute to "yes" to cause this Control to be invoked by the return key. /// public YesNoType Default { get { return this.defaultField; } set { this.defaultFieldSet = true; this.defaultField = value; } } /// /// Set this attribute to "yes" to cause this Control to be invoked by the escape key. /// public YesNoType Cancel { get { return this.cancelField; } set { this.cancelFieldSet = true; this.cancelField = value; } } /// /// Set this attribute to "yes" to cause the Control to be hidden. /// public YesNoType Hidden { get { return this.hiddenField; } set { this.hiddenFieldSet = true; this.hiddenField = value; } } /// /// Set this attribute to "yes" to cause the Control to be disabled. /// public YesNoType Disabled { get { return this.disabledField; } set { this.disabledFieldSet = true; this.disabledField = value; } } /// /// Set this attribute to "yes" to cause the Control to be sunken. /// public YesNoType Sunken { get { return this.sunkenField; } set { this.sunkenFieldSet = true; this.sunkenField = value; } } /// /// Specifies whether the value displayed or changed by this control is referenced indirectly. If this bit is set, the control displays or changes the value of the property that has the identifier listed in the Property column of the Control table. /// public YesNoType Indirect { get { return this.indirectField; } set { this.indirectFieldSet = true; this.indirectField = value; } } /// /// Set this attribute to "yes" to cause the linked Property value for the Control to be treated as an integer. Otherwise, the Property will be treated as a string. /// public YesNoType Integer { get { return this.integerField; } set { this.integerFieldSet = true; this.integerField = value; } } /// /// Set this attribute to "yes" to cause the Control to display from right to left. /// public YesNoType RightToLeft { get { return this.rightToLeftField; } set { this.rightToLeftFieldSet = true; this.rightToLeftField = value; } } /// /// Set this attribute to "yes" to cause the Control to be right aligned. /// public YesNoType RightAligned { get { return this.rightAlignedField; } set { this.rightAlignedFieldSet = true; this.rightAlignedField = value; } } /// /// Set this attribute to "yes" to cause the scroll bar to display on the left side of the Control. /// public YesNoType LeftScroll { get { return this.leftScrollField; } set { this.leftScrollFieldSet = true; this.leftScrollField = value; } } /// /// This attribute is only valid for Text Controls. /// public YesNoType Transparent { get { return this.transparentField; } set { this.transparentFieldSet = true; this.transparentField = value; } } /// /// This attribute is only valid for Text Controls. /// public YesNoType NoPrefix { get { return this.noPrefixField; } set { this.noPrefixFieldSet = true; this.noPrefixField = value; } } /// /// This attribute is only valid for Text Controls. /// public YesNoType NoWrap { get { return this.noWrapField; } set { this.noWrapFieldSet = true; this.noWrapField = value; } } /// /// This attribute is only valid for Text Controls. /// public YesNoType FormatSize { get { return this.formatSizeField; } set { this.formatSizeFieldSet = true; this.formatSizeField = value; } } /// /// This attribute is only valid for Text Controls. /// public YesNoType UserLanguage { get { return this.userLanguageField; } set { this.userLanguageFieldSet = true; this.userLanguageField = value; } } /// /// This attribute is only valid for Edit Controls. /// public YesNoType Multiline { get { return this.multilineField; } set { this.multilineFieldSet = true; this.multilineField = value; } } /// /// This attribute is only valid for Edit Controls. /// public YesNoType Password { get { return this.passwordField; } set { this.passwordFieldSet = true; this.passwordField = value; } } /// /// This attribute is only valid for ProgressBar Controls. /// public YesNoType ProgressBlocks { get { return this.progressBlocksField; } set { this.progressBlocksFieldSet = true; this.progressBlocksField = value; } } /// /// This attribute is only valid for Volume and Directory Controls. /// public YesNoType Removable { get { return this.removableField; } set { this.removableFieldSet = true; this.removableField = value; } } /// /// This attribute is only valid for Volume and Directory Controls. /// public YesNoType Fixed { get { return this.fixedField; } set { this.fixedFieldSet = true; this.fixedField = value; } } /// /// This attribute is only valid for Volume and Directory Controls. /// public YesNoType Remote { get { return this.remoteField; } set { this.remoteFieldSet = true; this.remoteField = value; } } /// /// This attribute is only valid for Volume and Directory Controls. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public YesNoType CDROM { get { return this.cDROMField; } set { this.cDROMFieldSet = true; this.cDROMField = value; } } /// /// This attribute is only valid for Volume and Directory Controls. /// [SuppressMessage("Microsoft.Naming", "CA1705:LongAcronymsShouldBePascalCased")] public YesNoType RAMDisk { get { return this.rAMDiskField; } set { this.rAMDiskFieldSet = true; this.rAMDiskField = value; } } /// /// This attribute is only valid for Volume and Directory Controls. /// public YesNoType Floppy { get { return this.floppyField; } set { this.floppyFieldSet = true; this.floppyField = value; } } /// /// This attribute is only valid for VolumeCostList Controls. /// public YesNoType ShowRollbackCost { get { return this.showRollbackCostField; } set { this.showRollbackCostFieldSet = true; this.showRollbackCostField = value; } } /// /// This attribute is only valid for ListBox, ListView, and ComboBox Controls. Set /// the value of this attribute to "yes" to have entries appear in the order specified under the Control. /// If the attribute value is "no" or absent the entries in the control will appear in alphabetical order. /// public YesNoType Sorted { get { return this.sortedField; } set { this.sortedFieldSet = true; this.sortedField = value; } } /// /// This attribute is only valid for ComboBox Controls. /// public YesNoType ComboList { get { return this.comboListField; } set { this.comboListFieldSet = true; this.comboListField = value; } } /// /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. /// public YesNoType Image { get { return this.imageField; } set { this.imageFieldSet = true; this.imageField = value; } } /// /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. /// public IconSizeType IconSize { get { return this.iconSizeField; } set { this.iconSizeFieldSet = true; this.iconSizeField = value; } } /// /// This attribute is only valid for RadioButton, PushButton, and Icon Controls. /// public YesNoType FixedSize { get { return this.fixedSizeField; } set { this.fixedSizeFieldSet = true; this.fixedSizeField = value; } } /// /// This attribute is only valid for RadioButton and PushButton Controls. /// public YesNoType Icon { get { return this.iconField; } set { this.iconFieldSet = true; this.iconField = value; } } /// /// This attribute is only valid for RadioButton and PushButton Controls. /// public YesNoType Bitmap { get { return this.bitmapField; } set { this.bitmapFieldSet = true; this.bitmapField = value; } } /// /// This attribute is only valid for RadioButton and Checkbox Controls. /// public YesNoType PushLike { get { return this.pushLikeField; } set { this.pushLikeFieldSet = true; this.pushLikeField = value; } } /// /// This attribute is only valid for RadioButton Controls. /// public YesNoType HasBorder { get { return this.hasBorderField; } set { this.hasBorderFieldSet = true; this.hasBorderField = value; } } /// /// This attribute is only valid for PushButton controls. /// Set this attribute to "yes" to add the User Account Control (UAC) elevation icon (shield icon) to the PushButton control. /// If this attribute's value is "yes" and the installation is not yet running with elevated privileges, /// the pushbutton control is created using the User Account Control (UAC) elevation icon (shield icon). /// If this attribute's value is "yes" and the installation is already running with elevated privileges, /// the pushbutton control is created using the other icon attributes. /// Otherwise, the pushbutton control is created using the other icon attributes. /// public YesNoType ElevationShield { get { return this.elevationShieldField; } set { this.elevationShieldFieldSet = true; this.elevationShieldField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Text" == childName)) { childValue = new Text(); } if (("ComboBox" == childName)) { childValue = new ComboBox(); } if (("ListBox" == childName)) { childValue = new ListBox(); } if (("ListView" == childName)) { childValue = new ListView(); } if (("RadioButtonGroup" == childName)) { childValue = new RadioButtonGroup(); } if (("Property" == childName)) { childValue = new Property(); } if (("Binary" == childName)) { childValue = new Binary(); } if (("Condition" == childName)) { childValue = new Condition(); } if (("Publish" == childName)) { childValue = new Publish(); } if (("Subscribe" == childName)) { childValue = new Subscribe(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Parses a IconSizeType from a string. /// public static IconSizeType ParseIconSizeType(string value) { IconSizeType parsedValue; Control.TryParseIconSizeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a IconSizeType from a string. /// public static bool TryParseIconSizeType(string value, out IconSizeType parsedValue) { parsedValue = IconSizeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("16" == value)) { parsedValue = IconSizeType.Item16; } else { if (("32" == value)) { parsedValue = IconSizeType.Item32; } else { if (("48" == value)) { parsedValue = IconSizeType.Item48; } else { parsedValue = IconSizeType.IllegalValue; return false; } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Control", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.typeFieldSet) { writer.WriteAttributeString("Type", this.typeField); } if (this.xFieldSet) { writer.WriteAttributeString("X", this.xField); } if (this.yFieldSet) { writer.WriteAttributeString("Y", this.yField); } if (this.widthFieldSet) { writer.WriteAttributeString("Width", this.widthField); } if (this.heightFieldSet) { writer.WriteAttributeString("Height", this.heightField); } if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } if (this.textFieldSet) { writer.WriteAttributeString("Text", this.textField); } if (this.helpFieldSet) { writer.WriteAttributeString("Help", this.helpField); } if (this.toolTipFieldSet) { writer.WriteAttributeString("ToolTip", this.toolTipField); } if (this.checkBoxValueFieldSet) { writer.WriteAttributeString("CheckBoxValue", this.checkBoxValueField); } if (this.checkBoxPropertyRefFieldSet) { writer.WriteAttributeString("CheckBoxPropertyRef", this.checkBoxPropertyRefField); } if (this.tabSkipFieldSet) { if ((this.tabSkipField == YesNoType.no)) { writer.WriteAttributeString("TabSkip", "no"); } if ((this.tabSkipField == YesNoType.yes)) { writer.WriteAttributeString("TabSkip", "yes"); } } if (this.defaultFieldSet) { if ((this.defaultField == YesNoType.no)) { writer.WriteAttributeString("Default", "no"); } if ((this.defaultField == YesNoType.yes)) { writer.WriteAttributeString("Default", "yes"); } } if (this.cancelFieldSet) { if ((this.cancelField == YesNoType.no)) { writer.WriteAttributeString("Cancel", "no"); } if ((this.cancelField == YesNoType.yes)) { writer.WriteAttributeString("Cancel", "yes"); } } if (this.hiddenFieldSet) { if ((this.hiddenField == YesNoType.no)) { writer.WriteAttributeString("Hidden", "no"); } if ((this.hiddenField == YesNoType.yes)) { writer.WriteAttributeString("Hidden", "yes"); } } if (this.disabledFieldSet) { if ((this.disabledField == YesNoType.no)) { writer.WriteAttributeString("Disabled", "no"); } if ((this.disabledField == YesNoType.yes)) { writer.WriteAttributeString("Disabled", "yes"); } } if (this.sunkenFieldSet) { if ((this.sunkenField == YesNoType.no)) { writer.WriteAttributeString("Sunken", "no"); } if ((this.sunkenField == YesNoType.yes)) { writer.WriteAttributeString("Sunken", "yes"); } } if (this.indirectFieldSet) { if ((this.indirectField == YesNoType.no)) { writer.WriteAttributeString("Indirect", "no"); } if ((this.indirectField == YesNoType.yes)) { writer.WriteAttributeString("Indirect", "yes"); } } if (this.integerFieldSet) { if ((this.integerField == YesNoType.no)) { writer.WriteAttributeString("Integer", "no"); } if ((this.integerField == YesNoType.yes)) { writer.WriteAttributeString("Integer", "yes"); } } if (this.rightToLeftFieldSet) { if ((this.rightToLeftField == YesNoType.no)) { writer.WriteAttributeString("RightToLeft", "no"); } if ((this.rightToLeftField == YesNoType.yes)) { writer.WriteAttributeString("RightToLeft", "yes"); } } if (this.rightAlignedFieldSet) { if ((this.rightAlignedField == YesNoType.no)) { writer.WriteAttributeString("RightAligned", "no"); } if ((this.rightAlignedField == YesNoType.yes)) { writer.WriteAttributeString("RightAligned", "yes"); } } if (this.leftScrollFieldSet) { if ((this.leftScrollField == YesNoType.no)) { writer.WriteAttributeString("LeftScroll", "no"); } if ((this.leftScrollField == YesNoType.yes)) { writer.WriteAttributeString("LeftScroll", "yes"); } } if (this.transparentFieldSet) { if ((this.transparentField == YesNoType.no)) { writer.WriteAttributeString("Transparent", "no"); } if ((this.transparentField == YesNoType.yes)) { writer.WriteAttributeString("Transparent", "yes"); } } if (this.noPrefixFieldSet) { if ((this.noPrefixField == YesNoType.no)) { writer.WriteAttributeString("NoPrefix", "no"); } if ((this.noPrefixField == YesNoType.yes)) { writer.WriteAttributeString("NoPrefix", "yes"); } } if (this.noWrapFieldSet) { if ((this.noWrapField == YesNoType.no)) { writer.WriteAttributeString("NoWrap", "no"); } if ((this.noWrapField == YesNoType.yes)) { writer.WriteAttributeString("NoWrap", "yes"); } } if (this.formatSizeFieldSet) { if ((this.formatSizeField == YesNoType.no)) { writer.WriteAttributeString("FormatSize", "no"); } if ((this.formatSizeField == YesNoType.yes)) { writer.WriteAttributeString("FormatSize", "yes"); } } if (this.userLanguageFieldSet) { if ((this.userLanguageField == YesNoType.no)) { writer.WriteAttributeString("UserLanguage", "no"); } if ((this.userLanguageField == YesNoType.yes)) { writer.WriteAttributeString("UserLanguage", "yes"); } } if (this.multilineFieldSet) { if ((this.multilineField == YesNoType.no)) { writer.WriteAttributeString("Multiline", "no"); } if ((this.multilineField == YesNoType.yes)) { writer.WriteAttributeString("Multiline", "yes"); } } if (this.passwordFieldSet) { if ((this.passwordField == YesNoType.no)) { writer.WriteAttributeString("Password", "no"); } if ((this.passwordField == YesNoType.yes)) { writer.WriteAttributeString("Password", "yes"); } } if (this.progressBlocksFieldSet) { if ((this.progressBlocksField == YesNoType.no)) { writer.WriteAttributeString("ProgressBlocks", "no"); } if ((this.progressBlocksField == YesNoType.yes)) { writer.WriteAttributeString("ProgressBlocks", "yes"); } } if (this.removableFieldSet) { if ((this.removableField == YesNoType.no)) { writer.WriteAttributeString("Removable", "no"); } if ((this.removableField == YesNoType.yes)) { writer.WriteAttributeString("Removable", "yes"); } } if (this.fixedFieldSet) { if ((this.fixedField == YesNoType.no)) { writer.WriteAttributeString("Fixed", "no"); } if ((this.fixedField == YesNoType.yes)) { writer.WriteAttributeString("Fixed", "yes"); } } if (this.remoteFieldSet) { if ((this.remoteField == YesNoType.no)) { writer.WriteAttributeString("Remote", "no"); } if ((this.remoteField == YesNoType.yes)) { writer.WriteAttributeString("Remote", "yes"); } } if (this.cDROMFieldSet) { if ((this.cDROMField == YesNoType.no)) { writer.WriteAttributeString("CDROM", "no"); } if ((this.cDROMField == YesNoType.yes)) { writer.WriteAttributeString("CDROM", "yes"); } } if (this.rAMDiskFieldSet) { if ((this.rAMDiskField == YesNoType.no)) { writer.WriteAttributeString("RAMDisk", "no"); } if ((this.rAMDiskField == YesNoType.yes)) { writer.WriteAttributeString("RAMDisk", "yes"); } } if (this.floppyFieldSet) { if ((this.floppyField == YesNoType.no)) { writer.WriteAttributeString("Floppy", "no"); } if ((this.floppyField == YesNoType.yes)) { writer.WriteAttributeString("Floppy", "yes"); } } if (this.showRollbackCostFieldSet) { if ((this.showRollbackCostField == YesNoType.no)) { writer.WriteAttributeString("ShowRollbackCost", "no"); } if ((this.showRollbackCostField == YesNoType.yes)) { writer.WriteAttributeString("ShowRollbackCost", "yes"); } } if (this.sortedFieldSet) { if ((this.sortedField == YesNoType.no)) { writer.WriteAttributeString("Sorted", "no"); } if ((this.sortedField == YesNoType.yes)) { writer.WriteAttributeString("Sorted", "yes"); } } if (this.comboListFieldSet) { if ((this.comboListField == YesNoType.no)) { writer.WriteAttributeString("ComboList", "no"); } if ((this.comboListField == YesNoType.yes)) { writer.WriteAttributeString("ComboList", "yes"); } } if (this.imageFieldSet) { if ((this.imageField == YesNoType.no)) { writer.WriteAttributeString("Image", "no"); } if ((this.imageField == YesNoType.yes)) { writer.WriteAttributeString("Image", "yes"); } } if (this.iconSizeFieldSet) { if ((this.iconSizeField == IconSizeType.Item16)) { writer.WriteAttributeString("IconSize", "16"); } if ((this.iconSizeField == IconSizeType.Item32)) { writer.WriteAttributeString("IconSize", "32"); } if ((this.iconSizeField == IconSizeType.Item48)) { writer.WriteAttributeString("IconSize", "48"); } } if (this.fixedSizeFieldSet) { if ((this.fixedSizeField == YesNoType.no)) { writer.WriteAttributeString("FixedSize", "no"); } if ((this.fixedSizeField == YesNoType.yes)) { writer.WriteAttributeString("FixedSize", "yes"); } } if (this.iconFieldSet) { if ((this.iconField == YesNoType.no)) { writer.WriteAttributeString("Icon", "no"); } if ((this.iconField == YesNoType.yes)) { writer.WriteAttributeString("Icon", "yes"); } } if (this.bitmapFieldSet) { if ((this.bitmapField == YesNoType.no)) { writer.WriteAttributeString("Bitmap", "no"); } if ((this.bitmapField == YesNoType.yes)) { writer.WriteAttributeString("Bitmap", "yes"); } } if (this.pushLikeFieldSet) { if ((this.pushLikeField == YesNoType.no)) { writer.WriteAttributeString("PushLike", "no"); } if ((this.pushLikeField == YesNoType.yes)) { writer.WriteAttributeString("PushLike", "yes"); } } if (this.hasBorderFieldSet) { if ((this.hasBorderField == YesNoType.no)) { writer.WriteAttributeString("HasBorder", "no"); } if ((this.hasBorderField == YesNoType.yes)) { writer.WriteAttributeString("HasBorder", "yes"); } } if (this.elevationShieldFieldSet) { if ((this.elevationShieldField == YesNoType.no)) { writer.WriteAttributeString("ElevationShield", "no"); } if ((this.elevationShieldField == YesNoType.yes)) { writer.WriteAttributeString("ElevationShield", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Type" == name)) { this.typeField = value; this.typeFieldSet = true; } if (("X" == name)) { this.xField = value; this.xFieldSet = true; } if (("Y" == name)) { this.yField = value; this.yFieldSet = true; } if (("Width" == name)) { this.widthField = value; this.widthFieldSet = true; } if (("Height" == name)) { this.heightField = value; this.heightFieldSet = true; } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } if (("Text" == name)) { this.textField = value; this.textFieldSet = true; } if (("Help" == name)) { this.helpField = value; this.helpFieldSet = true; } if (("ToolTip" == name)) { this.toolTipField = value; this.toolTipFieldSet = true; } if (("CheckBoxValue" == name)) { this.checkBoxValueField = value; this.checkBoxValueFieldSet = true; } if (("CheckBoxPropertyRef" == name)) { this.checkBoxPropertyRefField = value; this.checkBoxPropertyRefFieldSet = true; } if (("TabSkip" == name)) { this.tabSkipField = Enums.ParseYesNoType(value); this.tabSkipFieldSet = true; } if (("Default" == name)) { this.defaultField = Enums.ParseYesNoType(value); this.defaultFieldSet = true; } if (("Cancel" == name)) { this.cancelField = Enums.ParseYesNoType(value); this.cancelFieldSet = true; } if (("Hidden" == name)) { this.hiddenField = Enums.ParseYesNoType(value); this.hiddenFieldSet = true; } if (("Disabled" == name)) { this.disabledField = Enums.ParseYesNoType(value); this.disabledFieldSet = true; } if (("Sunken" == name)) { this.sunkenField = Enums.ParseYesNoType(value); this.sunkenFieldSet = true; } if (("Indirect" == name)) { this.indirectField = Enums.ParseYesNoType(value); this.indirectFieldSet = true; } if (("Integer" == name)) { this.integerField = Enums.ParseYesNoType(value); this.integerFieldSet = true; } if (("RightToLeft" == name)) { this.rightToLeftField = Enums.ParseYesNoType(value); this.rightToLeftFieldSet = true; } if (("RightAligned" == name)) { this.rightAlignedField = Enums.ParseYesNoType(value); this.rightAlignedFieldSet = true; } if (("LeftScroll" == name)) { this.leftScrollField = Enums.ParseYesNoType(value); this.leftScrollFieldSet = true; } if (("Transparent" == name)) { this.transparentField = Enums.ParseYesNoType(value); this.transparentFieldSet = true; } if (("NoPrefix" == name)) { this.noPrefixField = Enums.ParseYesNoType(value); this.noPrefixFieldSet = true; } if (("NoWrap" == name)) { this.noWrapField = Enums.ParseYesNoType(value); this.noWrapFieldSet = true; } if (("FormatSize" == name)) { this.formatSizeField = Enums.ParseYesNoType(value); this.formatSizeFieldSet = true; } if (("UserLanguage" == name)) { this.userLanguageField = Enums.ParseYesNoType(value); this.userLanguageFieldSet = true; } if (("Multiline" == name)) { this.multilineField = Enums.ParseYesNoType(value); this.multilineFieldSet = true; } if (("Password" == name)) { this.passwordField = Enums.ParseYesNoType(value); this.passwordFieldSet = true; } if (("ProgressBlocks" == name)) { this.progressBlocksField = Enums.ParseYesNoType(value); this.progressBlocksFieldSet = true; } if (("Removable" == name)) { this.removableField = Enums.ParseYesNoType(value); this.removableFieldSet = true; } if (("Fixed" == name)) { this.fixedField = Enums.ParseYesNoType(value); this.fixedFieldSet = true; } if (("Remote" == name)) { this.remoteField = Enums.ParseYesNoType(value); this.remoteFieldSet = true; } if (("CDROM" == name)) { this.cDROMField = Enums.ParseYesNoType(value); this.cDROMFieldSet = true; } if (("RAMDisk" == name)) { this.rAMDiskField = Enums.ParseYesNoType(value); this.rAMDiskFieldSet = true; } if (("Floppy" == name)) { this.floppyField = Enums.ParseYesNoType(value); this.floppyFieldSet = true; } if (("ShowRollbackCost" == name)) { this.showRollbackCostField = Enums.ParseYesNoType(value); this.showRollbackCostFieldSet = true; } if (("Sorted" == name)) { this.sortedField = Enums.ParseYesNoType(value); this.sortedFieldSet = true; } if (("ComboList" == name)) { this.comboListField = Enums.ParseYesNoType(value); this.comboListFieldSet = true; } if (("Image" == name)) { this.imageField = Enums.ParseYesNoType(value); this.imageFieldSet = true; } if (("IconSize" == name)) { this.iconSizeField = Control.ParseIconSizeType(value); this.iconSizeFieldSet = true; } if (("FixedSize" == name)) { this.fixedSizeField = Enums.ParseYesNoType(value); this.fixedSizeFieldSet = true; } if (("Icon" == name)) { this.iconField = Enums.ParseYesNoType(value); this.iconFieldSet = true; } if (("Bitmap" == name)) { this.bitmapField = Enums.ParseYesNoType(value); this.bitmapFieldSet = true; } if (("PushLike" == name)) { this.pushLikeField = Enums.ParseYesNoType(value); this.pushLikeFieldSet = true; } if (("HasBorder" == name)) { this.hasBorderField = Enums.ParseYesNoType(value); this.hasBorderFieldSet = true; } if (("ElevationShield" == name)) { this.elevationShieldField = Enums.ParseYesNoType(value); this.elevationShieldFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum IconSizeType { IllegalValue = int.MaxValue, NotSet = -1, Item16, Item32, Item48, } } /// /// Billboard to display during install of a Feature /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Billboard : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private string featureField; private bool featureFieldSet; private ISchemaElement parentElement; public Billboard() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for the Billboard. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Feature whose state determines if the Billboard is shown. /// public string Feature { get { return this.featureField; } set { this.featureFieldSet = true; this.featureField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Control" == childName)) { childValue = new Control(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Billboard", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.featureFieldSet) { writer.WriteAttributeString("Feature", this.featureField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Feature" == name)) { this.featureField = value; this.featureFieldSet = true; } } } /// /// Billboard action during which child Billboards are displayed /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class BillboardAction : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public BillboardAction() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Billboard))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Action name that determines when the Billboard should be shown. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Billboard" == childName)) { childValue = new Billboard(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("BillboardAction", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Defines a dialog box in the Dialog Table. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Dialog : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private int xField; private bool xFieldSet; private int yField; private bool yFieldSet; private int widthField; private bool widthFieldSet; private int heightField; private bool heightFieldSet; private string titleField; private bool titleFieldSet; private YesNoType hiddenField; private bool hiddenFieldSet; private YesNoType modelessField; private bool modelessFieldSet; private YesNoType noMinimizeField; private bool noMinimizeFieldSet; private YesNoType systemModalField; private bool systemModalFieldSet; private YesNoType keepModelessField; private bool keepModelessFieldSet; private YesNoType trackDiskSpaceField; private bool trackDiskSpaceFieldSet; private YesNoType customPaletteField; private bool customPaletteFieldSet; private YesNoType rightToLeftField; private bool rightToLeftFieldSet; private YesNoType rightAlignedField; private bool rightAlignedFieldSet; private YesNoType leftScrollField; private bool leftScrollFieldSet; private YesNoType errorDialogField; private bool errorDialogFieldSet; private ISchemaElement parentElement; public Dialog() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Control))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Unique identifier for the dialog. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Horizontal placement of the dialog box as a percentage of screen width. The default value is 50. /// public int X { get { return this.xField; } set { this.xFieldSet = true; this.xField = value; } } /// /// Vertical placement of the dialog box as a percentage of screen height. The default value is 50. /// public int Y { get { return this.yField; } set { this.yFieldSet = true; this.yField = value; } } /// /// The width of the dialog box in dialog units. /// public int Width { get { return this.widthField; } set { this.widthFieldSet = true; this.widthField = value; } } /// /// The height of the dialog box in dialog units. /// public int Height { get { return this.heightField; } set { this.heightFieldSet = true; this.heightField = value; } } /// /// The title of the dialog box. /// public string Title { get { return this.titleField; } set { this.titleFieldSet = true; this.titleField = value; } } /// /// Used to hide the dialog. /// public YesNoType Hidden { get { return this.hiddenField; } set { this.hiddenFieldSet = true; this.hiddenField = value; } } /// /// Used to set the dialog as modeless. /// public YesNoType Modeless { get { return this.modelessField; } set { this.modelessFieldSet = true; this.modelessField = value; } } /// /// Used to specify if the dialog can be minimized. /// public YesNoType NoMinimize { get { return this.noMinimizeField; } set { this.noMinimizeFieldSet = true; this.noMinimizeField = value; } } /// /// Used to set the dialog as system modal. /// public YesNoType SystemModal { get { return this.systemModalField; } set { this.systemModalFieldSet = true; this.systemModalField = value; } } /// /// Keep modeless dialogs alive when this dialog is created through DoAction. /// public YesNoType KeepModeless { get { return this.keepModelessField; } set { this.keepModelessFieldSet = true; this.keepModelessField = value; } } /// /// Have the dialog periodically call the installer to check if available disk space has changed. /// public YesNoType TrackDiskSpace { get { return this.trackDiskSpaceField; } set { this.trackDiskSpaceFieldSet = true; this.trackDiskSpaceField = value; } } /// /// Used to specify if pictures in the dialog box are rendered with a custom palette. /// public YesNoType CustomPalette { get { return this.customPaletteField; } set { this.customPaletteFieldSet = true; this.customPaletteField = value; } } /// /// Used to specify if the text in the dialog should be displayed in right to left reading order. /// public YesNoType RightToLeft { get { return this.rightToLeftField; } set { this.rightToLeftFieldSet = true; this.rightToLeftField = value; } } /// /// Align text on the right. /// public YesNoType RightAligned { get { return this.rightAlignedField; } set { this.rightAlignedFieldSet = true; this.rightAlignedField = value; } } /// /// Used to align the scroll bar on the left. /// public YesNoType LeftScroll { get { return this.leftScrollField; } set { this.leftScrollFieldSet = true; this.leftScrollField = value; } } /// /// Specifies this dialog as an error dialog. /// public YesNoType ErrorDialog { get { return this.errorDialogField; } set { this.errorDialogFieldSet = true; this.errorDialogField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Control" == childName)) { childValue = new Control(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Dialog", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.xFieldSet) { writer.WriteAttributeString("X", this.xField.ToString(CultureInfo.InvariantCulture)); } if (this.yFieldSet) { writer.WriteAttributeString("Y", this.yField.ToString(CultureInfo.InvariantCulture)); } if (this.widthFieldSet) { writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); } if (this.heightFieldSet) { writer.WriteAttributeString("Height", this.heightField.ToString(CultureInfo.InvariantCulture)); } if (this.titleFieldSet) { writer.WriteAttributeString("Title", this.titleField); } if (this.hiddenFieldSet) { if ((this.hiddenField == YesNoType.no)) { writer.WriteAttributeString("Hidden", "no"); } if ((this.hiddenField == YesNoType.yes)) { writer.WriteAttributeString("Hidden", "yes"); } } if (this.modelessFieldSet) { if ((this.modelessField == YesNoType.no)) { writer.WriteAttributeString("Modeless", "no"); } if ((this.modelessField == YesNoType.yes)) { writer.WriteAttributeString("Modeless", "yes"); } } if (this.noMinimizeFieldSet) { if ((this.noMinimizeField == YesNoType.no)) { writer.WriteAttributeString("NoMinimize", "no"); } if ((this.noMinimizeField == YesNoType.yes)) { writer.WriteAttributeString("NoMinimize", "yes"); } } if (this.systemModalFieldSet) { if ((this.systemModalField == YesNoType.no)) { writer.WriteAttributeString("SystemModal", "no"); } if ((this.systemModalField == YesNoType.yes)) { writer.WriteAttributeString("SystemModal", "yes"); } } if (this.keepModelessFieldSet) { if ((this.keepModelessField == YesNoType.no)) { writer.WriteAttributeString("KeepModeless", "no"); } if ((this.keepModelessField == YesNoType.yes)) { writer.WriteAttributeString("KeepModeless", "yes"); } } if (this.trackDiskSpaceFieldSet) { if ((this.trackDiskSpaceField == YesNoType.no)) { writer.WriteAttributeString("TrackDiskSpace", "no"); } if ((this.trackDiskSpaceField == YesNoType.yes)) { writer.WriteAttributeString("TrackDiskSpace", "yes"); } } if (this.customPaletteFieldSet) { if ((this.customPaletteField == YesNoType.no)) { writer.WriteAttributeString("CustomPalette", "no"); } if ((this.customPaletteField == YesNoType.yes)) { writer.WriteAttributeString("CustomPalette", "yes"); } } if (this.rightToLeftFieldSet) { if ((this.rightToLeftField == YesNoType.no)) { writer.WriteAttributeString("RightToLeft", "no"); } if ((this.rightToLeftField == YesNoType.yes)) { writer.WriteAttributeString("RightToLeft", "yes"); } } if (this.rightAlignedFieldSet) { if ((this.rightAlignedField == YesNoType.no)) { writer.WriteAttributeString("RightAligned", "no"); } if ((this.rightAlignedField == YesNoType.yes)) { writer.WriteAttributeString("RightAligned", "yes"); } } if (this.leftScrollFieldSet) { if ((this.leftScrollField == YesNoType.no)) { writer.WriteAttributeString("LeftScroll", "no"); } if ((this.leftScrollField == YesNoType.yes)) { writer.WriteAttributeString("LeftScroll", "yes"); } } if (this.errorDialogFieldSet) { if ((this.errorDialogField == YesNoType.no)) { writer.WriteAttributeString("ErrorDialog", "no"); } if ((this.errorDialogField == YesNoType.yes)) { writer.WriteAttributeString("ErrorDialog", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("X" == name)) { this.xField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.xFieldSet = true; } if (("Y" == name)) { this.yField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.yFieldSet = true; } if (("Width" == name)) { this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.widthFieldSet = true; } if (("Height" == name)) { this.heightField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.heightFieldSet = true; } if (("Title" == name)) { this.titleField = value; this.titleFieldSet = true; } if (("Hidden" == name)) { this.hiddenField = Enums.ParseYesNoType(value); this.hiddenFieldSet = true; } if (("Modeless" == name)) { this.modelessField = Enums.ParseYesNoType(value); this.modelessFieldSet = true; } if (("NoMinimize" == name)) { this.noMinimizeField = Enums.ParseYesNoType(value); this.noMinimizeFieldSet = true; } if (("SystemModal" == name)) { this.systemModalField = Enums.ParseYesNoType(value); this.systemModalFieldSet = true; } if (("KeepModeless" == name)) { this.keepModelessField = Enums.ParseYesNoType(value); this.keepModelessFieldSet = true; } if (("TrackDiskSpace" == name)) { this.trackDiskSpaceField = Enums.ParseYesNoType(value); this.trackDiskSpaceFieldSet = true; } if (("CustomPalette" == name)) { this.customPaletteField = Enums.ParseYesNoType(value); this.customPaletteFieldSet = true; } if (("RightToLeft" == name)) { this.rightToLeftField = Enums.ParseYesNoType(value); this.rightToLeftFieldSet = true; } if (("RightAligned" == name)) { this.rightAlignedField = Enums.ParseYesNoType(value); this.rightAlignedFieldSet = true; } if (("LeftScroll" == name)) { this.leftScrollField = Enums.ParseYesNoType(value); this.leftScrollFieldSet = true; } if (("ErrorDialog" == name)) { this.errorDialogField = Enums.ParseYesNoType(value); this.errorDialogFieldSet = true; } } } /// /// Reference to a Dialog. This will cause the entire referenced section's contents /// to be included in the installer database. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class DialogRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The identifier of the Dialog to reference. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("DialogRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ProgressText : ISchemaElement, ISetAttributes { private string actionField; private bool actionFieldSet; private string templateField; private bool templateFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; public string Action { get { return this.actionField; } set { this.actionFieldSet = true; this.actionField = value; } } /// /// used to format ActionData messages from action processing /// public string Template { get { return this.templateField; } set { this.templateFieldSet = true; this.templateField = value; } } /// /// Element value is progress message text for action /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ProgressText", "http://wixtoolset.org/schemas/v4/wxs"); if (this.actionFieldSet) { writer.WriteAttributeString("Action", this.actionField); } if (this.templateFieldSet) { writer.WriteAttributeString("Template", this.templateField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Action" == name)) { this.actionField = value; this.actionFieldSet = true; } if (("Template" == name)) { this.templateField = value; this.templateFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class TextStyle : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string faceNameField; private bool faceNameFieldSet; private string sizeField; private bool sizeFieldSet; private int redField; private bool redFieldSet; private int greenField; private bool greenFieldSet; private int blueField; private bool blueFieldSet; private YesNoType boldField; private bool boldFieldSet; private YesNoType italicField; private bool italicFieldSet; private YesNoType underlineField; private bool underlineFieldSet; private YesNoType strikeField; private bool strikeFieldSet; private ISchemaElement parentElement; public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public string FaceName { get { return this.faceNameField; } set { this.faceNameFieldSet = true; this.faceNameField = value; } } public string Size { get { return this.sizeField; } set { this.sizeFieldSet = true; this.sizeField = value; } } /// /// 0 to 255 /// public int Red { get { return this.redField; } set { this.redFieldSet = true; this.redField = value; } } /// /// 0 to 255 /// public int Green { get { return this.greenField; } set { this.greenFieldSet = true; this.greenField = value; } } /// /// 0 to 255 /// public int Blue { get { return this.blueField; } set { this.blueFieldSet = true; this.blueField = value; } } public YesNoType Bold { get { return this.boldField; } set { this.boldFieldSet = true; this.boldField = value; } } public YesNoType Italic { get { return this.italicField; } set { this.italicFieldSet = true; this.italicField = value; } } public YesNoType Underline { get { return this.underlineField; } set { this.underlineFieldSet = true; this.underlineField = value; } } public YesNoType Strike { get { return this.strikeField; } set { this.strikeFieldSet = true; this.strikeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("TextStyle", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.faceNameFieldSet) { writer.WriteAttributeString("FaceName", this.faceNameField); } if (this.sizeFieldSet) { writer.WriteAttributeString("Size", this.sizeField); } if (this.redFieldSet) { writer.WriteAttributeString("Red", this.redField.ToString(CultureInfo.InvariantCulture)); } if (this.greenFieldSet) { writer.WriteAttributeString("Green", this.greenField.ToString(CultureInfo.InvariantCulture)); } if (this.blueFieldSet) { writer.WriteAttributeString("Blue", this.blueField.ToString(CultureInfo.InvariantCulture)); } if (this.boldFieldSet) { if ((this.boldField == YesNoType.no)) { writer.WriteAttributeString("Bold", "no"); } if ((this.boldField == YesNoType.yes)) { writer.WriteAttributeString("Bold", "yes"); } } if (this.italicFieldSet) { if ((this.italicField == YesNoType.no)) { writer.WriteAttributeString("Italic", "no"); } if ((this.italicField == YesNoType.yes)) { writer.WriteAttributeString("Italic", "yes"); } } if (this.underlineFieldSet) { if ((this.underlineField == YesNoType.no)) { writer.WriteAttributeString("Underline", "no"); } if ((this.underlineField == YesNoType.yes)) { writer.WriteAttributeString("Underline", "yes"); } } if (this.strikeFieldSet) { if ((this.strikeField == YesNoType.no)) { writer.WriteAttributeString("Strike", "no"); } if ((this.strikeField == YesNoType.yes)) { writer.WriteAttributeString("Strike", "yes"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("FaceName" == name)) { this.faceNameField = value; this.faceNameFieldSet = true; } if (("Size" == name)) { this.sizeField = value; this.sizeFieldSet = true; } if (("Red" == name)) { this.redField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.redFieldSet = true; } if (("Green" == name)) { this.greenField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.greenFieldSet = true; } if (("Blue" == name)) { this.blueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.blueFieldSet = true; } if (("Bold" == name)) { this.boldField = Enums.ParseYesNoType(value); this.boldFieldSet = true; } if (("Italic" == name)) { this.italicField = Enums.ParseYesNoType(value); this.italicFieldSet = true; } if (("Underline" == name)) { this.underlineField = Enums.ParseYesNoType(value); this.underlineFieldSet = true; } if (("Strike" == name)) { this.strikeField = Enums.ParseYesNoType(value); this.strikeFieldSet = true; } } } /// /// The value (and optional text) associated with an item in a ComboBox, ListBox, or ListView. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ListItem : ISchemaElement, ISetAttributes { private string valueField; private bool valueFieldSet; private string textField; private bool textFieldSet; private string iconField; private bool iconFieldSet; private ISchemaElement parentElement; /// /// The value assigned to the associated ComboBox, ListBox, or ListView property if this item is selected. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } /// /// The localizable, visible text to be assigned to the item. /// If not specified, this will default to the value of the Value attribute. /// public string Text { get { return this.textField; } set { this.textFieldSet = true; this.textField = value; } } /// /// The identifier of the Binary (not Icon) element containing the icon to associate with this item. /// This value is only valid when nested under a ListView element. /// public string Icon { get { return this.iconField; } set { this.iconFieldSet = true; this.iconField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ListItem", "http://wixtoolset.org/schemas/v4/wxs"); if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.textFieldSet) { writer.WriteAttributeString("Text", this.textField); } if (this.iconFieldSet) { writer.WriteAttributeString("Icon", this.iconField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Text" == name)) { this.textField = value; this.textFieldSet = true; } if (("Icon" == name)) { this.iconField = value; this.iconFieldSet = true; } } } /// /// Set of items for a particular ListBox control tied to an install Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ListBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string propertyField; private bool propertyFieldSet; private ISchemaElement parentElement; public ListBox() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Property tied to this group /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ListItem" == childName)) { childValue = new ListItem(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ListBox", "http://wixtoolset.org/schemas/v4/wxs"); if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } } } /// /// Set of items for a particular ComboBox control tied to an install Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ComboBox : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string propertyField; private bool propertyFieldSet; private ISchemaElement parentElement; public ComboBox() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Property tied to this group /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ListItem" == childName)) { childValue = new ListItem(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ComboBox", "http://wixtoolset.org/schemas/v4/wxs"); if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } } } /// /// Set of items for a particular ListView control tied to an install Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ListView : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string propertyField; private bool propertyFieldSet; private ISchemaElement parentElement; public ListView() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(ListItem))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Property tied to this group /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("ListItem" == childName)) { childValue = new ListItem(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ListView", "http://wixtoolset.org/schemas/v4/wxs"); if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } } } /// /// Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RadioButton : ISchemaElement, ISetAttributes { private string bitmapField; private bool bitmapFieldSet; private string heightField; private bool heightFieldSet; private string helpField; private bool helpFieldSet; private string iconField; private bool iconFieldSet; private string textField; private bool textFieldSet; private string toolTipField; private bool toolTipFieldSet; private string valueField; private bool valueFieldSet; private string widthField; private bool widthFieldSet; private string xField; private bool xFieldSet; private string yField; private bool yFieldSet; private ISchemaElement parentElement; /// /// This attribute defines the bitmap displayed with the radio button. The value of the attribute creates a reference /// to a Binary element that represents the bitmap. This attribute is mutually exclusive with the Icon and Text /// attributes. /// public string Bitmap { get { return this.bitmapField; } set { this.bitmapFieldSet = true; this.bitmapField = value; } } public string Height { get { return this.heightField; } set { this.heightFieldSet = true; this.heightField = value; } } public string Help { get { return this.helpField; } set { this.helpFieldSet = true; this.helpField = value; } } /// /// This attribute defines the icon displayed with the radio button. The value of the attribute creates a reference /// to a Binary element that represents the icon. This attribute is mutually exclusive with the Bitmap and Text /// attributes. /// public string Icon { get { return this.iconField; } set { this.iconFieldSet = true; this.iconField = value; } } /// /// Text displayed with the radio button. This attribute is mutually exclusive with the Bitmap and Icon attributes. /// public string Text { get { return this.textField; } set { this.textFieldSet = true; this.textField = value; } } public string ToolTip { get { return this.toolTipField; } set { this.toolTipFieldSet = true; this.toolTipField = value; } } /// /// Value assigned to the associated control Property when this radio button is selected. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public string Width { get { return this.widthField; } set { this.widthFieldSet = true; this.widthField = value; } } public string X { get { return this.xField; } set { this.xFieldSet = true; this.xField = value; } } public string Y { get { return this.yField; } set { this.yFieldSet = true; this.yField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RadioButton", "http://wixtoolset.org/schemas/v4/wxs"); if (this.bitmapFieldSet) { writer.WriteAttributeString("Bitmap", this.bitmapField); } if (this.heightFieldSet) { writer.WriteAttributeString("Height", this.heightField); } if (this.helpFieldSet) { writer.WriteAttributeString("Help", this.helpField); } if (this.iconFieldSet) { writer.WriteAttributeString("Icon", this.iconField); } if (this.textFieldSet) { writer.WriteAttributeString("Text", this.textField); } if (this.toolTipFieldSet) { writer.WriteAttributeString("ToolTip", this.toolTipField); } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } if (this.widthFieldSet) { writer.WriteAttributeString("Width", this.widthField); } if (this.xFieldSet) { writer.WriteAttributeString("X", this.xField); } if (this.yFieldSet) { writer.WriteAttributeString("Y", this.yField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Bitmap" == name)) { this.bitmapField = value; this.bitmapFieldSet = true; } if (("Height" == name)) { this.heightField = value; this.heightFieldSet = true; } if (("Help" == name)) { this.helpField = value; this.helpFieldSet = true; } if (("Icon" == name)) { this.iconField = value; this.iconFieldSet = true; } if (("Text" == name)) { this.textField = value; this.textFieldSet = true; } if (("ToolTip" == name)) { this.toolTipField = value; this.toolTipFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } if (("Width" == name)) { this.widthField = value; this.widthFieldSet = true; } if (("X" == name)) { this.xField = value; this.xFieldSet = true; } if (("Y" == name)) { this.yField = value; this.yFieldSet = true; } } } /// /// Set of radio buttons tied to the specified Property /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class RadioButtonGroup : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string propertyField; private bool propertyFieldSet; private ISchemaElement parentElement; public RadioButtonGroup() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(RadioButton))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Property tied to this group. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("RadioButton" == childName)) { childValue = new RadioButton(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("RadioButtonGroup", "http://wixtoolset.org/schemas/v4/wxs"); if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } } } /// /// Text associated with certain controls /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UIText : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Element value is text, may use CDATA if needed to escape XML delimiters /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UIText", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Reference to a UI element. This will force the entire referenced Fragment's contents /// to be included in the installer database. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UIRef : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UIRef", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Enclosing element to compartmentalize UI specifications. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class UI : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private ISchemaElement parentElement; public UI() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(EmbeddedUI))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Error))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ProgressText))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(BillboardAction))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ComboBox))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListBox))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(ListView))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(RadioButtonGroup))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(TextStyle))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIText))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Dialog))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(DialogRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Publish))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(PropertyRef))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Property))); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Binary))); ElementCollection childCollection1 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(AdminUISequence))); childCollection1.AddItem(new ElementCollection.SequenceItem(typeof(InstallUISequence))); childCollection0.AddCollection(childCollection1); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(UIRef))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("EmbeddedUI" == childName)) { childValue = new EmbeddedUI(); } if (("Error" == childName)) { childValue = new Error(); } if (("ProgressText" == childName)) { childValue = new ProgressText(); } if (("BillboardAction" == childName)) { childValue = new BillboardAction(); } if (("ComboBox" == childName)) { childValue = new ComboBox(); } if (("ListBox" == childName)) { childValue = new ListBox(); } if (("ListView" == childName)) { childValue = new ListView(); } if (("RadioButtonGroup" == childName)) { childValue = new RadioButtonGroup(); } if (("TextStyle" == childName)) { childValue = new TextStyle(); } if (("UIText" == childName)) { childValue = new UIText(); } if (("Dialog" == childName)) { childValue = new Dialog(); } if (("DialogRef" == childName)) { childValue = new DialogRef(); } if (("Publish" == childName)) { childValue = new Publish(); } if (("PropertyRef" == childName)) { childValue = new PropertyRef(); } if (("Property" == childName)) { childValue = new Property(); } if (("Binary" == childName)) { childValue = new Binary(); } if (("AdminUISequence" == childName)) { childValue = new AdminUISequence(); } if (("InstallUISequence" == childName)) { childValue = new InstallUISequence(); } if (("UIRef" == childName)) { childValue = new UIRef(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("UI", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// Defines a custom table for use from a custom action. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class CustomTable : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string idField; private bool idFieldSet; private YesNoType bootstrapperApplicationDataField; private bool bootstrapperApplicationDataFieldSet; private ISchemaElement parentElement; public CustomTable() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Column))); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Row))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// Identifier for the custom table. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Indicates the table data is transformed into the bootstrapper application data manifest. /// public YesNoType BootstrapperApplicationData { get { return this.bootstrapperApplicationDataField; } set { this.bootstrapperApplicationDataFieldSet = true; this.bootstrapperApplicationDataField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Column" == childName)) { childValue = new Column(); } if (("Row" == childName)) { childValue = new Row(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("CustomTable", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.bootstrapperApplicationDataFieldSet) { if ((this.bootstrapperApplicationDataField == YesNoType.no)) { writer.WriteAttributeString("BootstrapperApplicationData", "no"); } if ((this.bootstrapperApplicationDataField == YesNoType.yes)) { writer.WriteAttributeString("BootstrapperApplicationData", "yes"); } } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("BootstrapperApplicationData" == name)) { this.bootstrapperApplicationDataField = Enums.ParseYesNoType(value); this.bootstrapperApplicationDataFieldSet = true; } } } /// /// Column definition for a Custom Table /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Column : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType primaryKeyField; private bool primaryKeyFieldSet; private TypeType typeField; private bool typeFieldSet; private int widthField; private bool widthFieldSet; private YesNoType nullableField; private bool nullableFieldSet; private YesNoType localizableField; private bool localizableFieldSet; private long minValueField; private bool minValueFieldSet; private long maxValueField; private bool maxValueFieldSet; private string keyTableField; private bool keyTableFieldSet; private int keyColumnField; private bool keyColumnFieldSet; private CategoryType categoryField; private bool categoryFieldSet; private string setField; private bool setFieldSet; private string descriptionField; private bool descriptionFieldSet; private ModularizeType modularizeField; private bool modularizeFieldSet; private ISchemaElement parentElement; /// /// Identifier for the column. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Whether this column is a primary key. /// public YesNoType PrimaryKey { get { return this.primaryKeyField; } set { this.primaryKeyFieldSet = true; this.primaryKeyField = value; } } /// /// The type of this column. /// public TypeType Type { get { return this.typeField; } set { this.typeFieldSet = true; this.typeField = value; } } /// /// Width of this column. /// public int Width { get { return this.widthField; } set { this.widthFieldSet = true; this.widthField = value; } } /// /// Whether this column can be left null. /// public YesNoType Nullable { get { return this.nullableField; } set { this.nullableFieldSet = true; this.nullableField = value; } } /// /// Whether this column can be localized. /// public YesNoType Localizable { get { return this.localizableField; } set { this.localizableFieldSet = true; this.localizableField = value; } } /// /// Minimum value for a numeric value, date or version in this column. /// public long MinValue { get { return this.minValueField; } set { this.minValueFieldSet = true; this.minValueField = value; } } /// /// Maximum value for a numeric value, date or version in this column. /// public long MaxValue { get { return this.maxValueField; } set { this.maxValueFieldSet = true; this.maxValueField = value; } } /// /// Table in which this column is an external key. Can be semicolon delimited. /// public string KeyTable { get { return this.keyTableField; } set { this.keyTableFieldSet = true; this.keyTableField = value; } } /// /// Column in the table in KeyTable attribute. /// public int KeyColumn { get { return this.keyColumnField; } set { this.keyColumnFieldSet = true; this.keyColumnField = value; } } /// /// Category of this column. /// This attribute must be specified with a value of 'Binary' if the Type attribute's value is 'binary'. /// public CategoryType Category { get { return this.categoryField; } set { this.categoryFieldSet = true; this.categoryField = value; } } /// /// Semicolon delimited list of permissible values. /// public string Set { get { return this.setField; } set { this.setFieldSet = true; this.setField = value; } } /// /// Description of this column. /// public string Description { get { return this.descriptionField; } set { this.descriptionFieldSet = true; this.descriptionField = value; } } /// /// How this column should be modularized, if at all. /// public ModularizeType Modularize { get { return this.modularizeField; } set { this.modularizeFieldSet = true; this.modularizeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a TypeType from a string. /// public static TypeType ParseTypeType(string value) { TypeType parsedValue; Column.TryParseTypeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a TypeType from a string. /// public static bool TryParseTypeType(string value, out TypeType parsedValue) { parsedValue = TypeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("binary" == value)) { parsedValue = TypeType.binary; } else { if (("int" == value)) { parsedValue = TypeType.@int; } else { if (("string" == value)) { parsedValue = TypeType.@string; } else { parsedValue = TypeType.IllegalValue; return false; } } } return true; } /// /// Parses a CategoryType from a string. /// public static CategoryType ParseCategoryType(string value) { CategoryType parsedValue; Column.TryParseCategoryType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a CategoryType from a string. /// public static bool TryParseCategoryType(string value, out CategoryType parsedValue) { parsedValue = CategoryType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("Text" == value)) { parsedValue = CategoryType.text; } else { if (("UpperCase" == value)) { parsedValue = CategoryType.upperCase; } else { if (("LowerCase" == value)) { parsedValue = CategoryType.lowerCase; } else { if (("Integer" == value)) { parsedValue = CategoryType.integer; } else { if (("DoubleInteger" == value)) { parsedValue = CategoryType.doubleInteger; } else { if (("TimeDate" == value)) { parsedValue = CategoryType.timeDate; } else { if (("Identifier" == value)) { parsedValue = CategoryType.identifier; } else { if (("Property" == value)) { parsedValue = CategoryType.property; } else { if (("Filename" == value)) { parsedValue = CategoryType.filename; } else { if (("WildCardFilename" == value)) { parsedValue = CategoryType.wildCardFilename; } else { if (("Path" == value)) { parsedValue = CategoryType.path; } else { if (("Paths" == value)) { parsedValue = CategoryType.paths; } else { if (("AnyPath" == value)) { parsedValue = CategoryType.anyPath; } else { if (("DefaultDir" == value)) { parsedValue = CategoryType.defaultDir; } else { if (("RegPath" == value)) { parsedValue = CategoryType.regPath; } else { if (("Formatted" == value)) { parsedValue = CategoryType.formatted; } else { if (("FormattedSddl" == value)) { parsedValue = CategoryType.formattedSddl; } else { if (("Template" == value)) { parsedValue = CategoryType.template; } else { if (("Condition" == value)) { parsedValue = CategoryType.condition; } else { if (("Guid" == value)) { parsedValue = CategoryType.guid; } else { if (("Version" == value)) { parsedValue = CategoryType.version; } else { if (("Language" == value)) { parsedValue = CategoryType.language; } else { if (("Binary" == value)) { parsedValue = CategoryType.binary; } else { if (("CustomSource" == value)) { parsedValue = CategoryType.customSource; } else { if (("Cabinet" == value)) { parsedValue = CategoryType.cabinet; } else { if (("Shortcut" == value)) { parsedValue = CategoryType.shortcut; } else { parsedValue = CategoryType.IllegalValue; return false; } } } } } } } } } } } } } } } } } } } } } } } } } } return true; } /// /// Parses a ModularizeType from a string. /// public static ModularizeType ParseModularizeType(string value) { ModularizeType parsedValue; Column.TryParseModularizeType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ModularizeType from a string. /// public static bool TryParseModularizeType(string value, out ModularizeType parsedValue) { parsedValue = ModularizeType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("None" == value)) { parsedValue = ModularizeType.None; } else { if (("Column" == value)) { parsedValue = ModularizeType.Column; } else { if (("Condition" == value)) { parsedValue = ModularizeType.Condition; } else { if (("Icon" == value)) { parsedValue = ModularizeType.Icon; } else { if (("Property" == value)) { parsedValue = ModularizeType.Property; } else { if (("SemicolonDelimited" == value)) { parsedValue = ModularizeType.SemicolonDelimited; } else { parsedValue = ModularizeType.IllegalValue; return false; } } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Column", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.primaryKeyFieldSet) { if ((this.primaryKeyField == YesNoType.no)) { writer.WriteAttributeString("PrimaryKey", "no"); } if ((this.primaryKeyField == YesNoType.yes)) { writer.WriteAttributeString("PrimaryKey", "yes"); } } if (this.typeFieldSet) { if ((this.typeField == TypeType.binary)) { writer.WriteAttributeString("Type", "binary"); } if ((this.typeField == TypeType.@int)) { writer.WriteAttributeString("Type", "int"); } if ((this.typeField == TypeType.@string)) { writer.WriteAttributeString("Type", "string"); } } if (this.widthFieldSet) { writer.WriteAttributeString("Width", this.widthField.ToString(CultureInfo.InvariantCulture)); } if (this.nullableFieldSet) { if ((this.nullableField == YesNoType.no)) { writer.WriteAttributeString("Nullable", "no"); } if ((this.nullableField == YesNoType.yes)) { writer.WriteAttributeString("Nullable", "yes"); } } if (this.localizableFieldSet) { if ((this.localizableField == YesNoType.no)) { writer.WriteAttributeString("Localizable", "no"); } if ((this.localizableField == YesNoType.yes)) { writer.WriteAttributeString("Localizable", "yes"); } } if (this.minValueFieldSet) { writer.WriteAttributeString("MinValue", this.minValueField.ToString(CultureInfo.InvariantCulture)); } if (this.maxValueFieldSet) { writer.WriteAttributeString("MaxValue", this.maxValueField.ToString(CultureInfo.InvariantCulture)); } if (this.keyTableFieldSet) { writer.WriteAttributeString("KeyTable", this.keyTableField); } if (this.keyColumnFieldSet) { writer.WriteAttributeString("KeyColumn", this.keyColumnField.ToString(CultureInfo.InvariantCulture)); } if (this.categoryFieldSet) { if ((this.categoryField == CategoryType.text)) { writer.WriteAttributeString("Category", "text"); } if ((this.categoryField == CategoryType.upperCase)) { writer.WriteAttributeString("Category", "upperCase"); } if ((this.categoryField == CategoryType.lowerCase)) { writer.WriteAttributeString("Category", "lowerCase"); } if ((this.categoryField == CategoryType.integer)) { writer.WriteAttributeString("Category", "integer"); } if ((this.categoryField == CategoryType.doubleInteger)) { writer.WriteAttributeString("Category", "doubleInteger"); } if ((this.categoryField == CategoryType.timeDate)) { writer.WriteAttributeString("Category", "timeDate"); } if ((this.categoryField == CategoryType.identifier)) { writer.WriteAttributeString("Category", "identifier"); } if ((this.categoryField == CategoryType.property)) { writer.WriteAttributeString("Category", "property"); } if ((this.categoryField == CategoryType.filename)) { writer.WriteAttributeString("Category", "filename"); } if ((this.categoryField == CategoryType.wildCardFilename)) { writer.WriteAttributeString("Category", "wildCardFilename"); } if ((this.categoryField == CategoryType.path)) { writer.WriteAttributeString("Category", "path"); } if ((this.categoryField == CategoryType.paths)) { writer.WriteAttributeString("Category", "paths"); } if ((this.categoryField == CategoryType.anyPath)) { writer.WriteAttributeString("Category", "anyPath"); } if ((this.categoryField == CategoryType.defaultDir)) { writer.WriteAttributeString("Category", "defaultDir"); } if ((this.categoryField == CategoryType.regPath)) { writer.WriteAttributeString("Category", "regPath"); } if ((this.categoryField == CategoryType.formatted)) { writer.WriteAttributeString("Category", "formatted"); } if ((this.categoryField == CategoryType.formattedSddl)) { writer.WriteAttributeString("Category", "formattedSddl"); } if ((this.categoryField == CategoryType.template)) { writer.WriteAttributeString("Category", "template"); } if ((this.categoryField == CategoryType.condition)) { writer.WriteAttributeString("Category", "condition"); } if ((this.categoryField == CategoryType.guid)) { writer.WriteAttributeString("Category", "guid"); } if ((this.categoryField == CategoryType.version)) { writer.WriteAttributeString("Category", "version"); } if ((this.categoryField == CategoryType.language)) { writer.WriteAttributeString("Category", "language"); } if ((this.categoryField == CategoryType.binary)) { writer.WriteAttributeString("Category", "Binary"); } if ((this.categoryField == CategoryType.customSource)) { writer.WriteAttributeString("Category", "customSource"); } if ((this.categoryField == CategoryType.cabinet)) { writer.WriteAttributeString("Category", "cabinet"); } if ((this.categoryField == CategoryType.shortcut)) { writer.WriteAttributeString("Category", "shortcut"); } } if (this.setFieldSet) { writer.WriteAttributeString("Set", this.setField); } if (this.descriptionFieldSet) { writer.WriteAttributeString("Description", this.descriptionField); } if (this.modularizeFieldSet) { if ((this.modularizeField == ModularizeType.None)) { writer.WriteAttributeString("Modularize", "None"); } if ((this.modularizeField == ModularizeType.Column)) { writer.WriteAttributeString("Modularize", "Column"); } if ((this.modularizeField == ModularizeType.Condition)) { writer.WriteAttributeString("Modularize", "Condition"); } if ((this.modularizeField == ModularizeType.Icon)) { writer.WriteAttributeString("Modularize", "Icon"); } if ((this.modularizeField == ModularizeType.Property)) { writer.WriteAttributeString("Modularize", "Property"); } if ((this.modularizeField == ModularizeType.SemicolonDelimited)) { writer.WriteAttributeString("Modularize", "SemicolonDelimited"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("PrimaryKey" == name)) { this.primaryKeyField = Enums.ParseYesNoType(value); this.primaryKeyFieldSet = true; } if (("Type" == name)) { this.typeField = Column.ParseTypeType(value); this.typeFieldSet = true; } if (("Width" == name)) { this.widthField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.widthFieldSet = true; } if (("Nullable" == name)) { this.nullableField = Enums.ParseYesNoType(value); this.nullableFieldSet = true; } if (("Localizable" == name)) { this.localizableField = Enums.ParseYesNoType(value); this.localizableFieldSet = true; } if (("MinValue" == name)) { this.minValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.minValueFieldSet = true; } if (("MaxValue" == name)) { this.maxValueField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.maxValueFieldSet = true; } if (("KeyTable" == name)) { this.keyTableField = value; this.keyTableFieldSet = true; } if (("KeyColumn" == name)) { this.keyColumnField = Convert.ToInt32(value, CultureInfo.InvariantCulture); this.keyColumnFieldSet = true; } if (("Category" == name)) { this.categoryField = Column.ParseCategoryType(value); this.categoryFieldSet = true; } if (("Set" == name)) { this.setField = value; this.setFieldSet = true; } if (("Description" == name)) { this.descriptionField = value; this.descriptionFieldSet = true; } if (("Modularize" == name)) { this.modularizeField = Column.ParseModularizeType(value); this.modularizeFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum TypeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Column contains a path to a file that will be inserted into the column as a binary object. /// If this value is set, the Category attribute must also be set with a value of 'Binary' to pass ICE validation. /// binary, /// /// Column contains an integer or datetime value (the MinValue and MaxValue attributes should also be set). /// @int, /// /// Column contains a non-localizable string value. /// @string, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum CategoryType { IllegalValue = int.MaxValue, NotSet = -1, text, upperCase, lowerCase, integer, doubleInteger, timeDate, identifier, property, filename, wildCardFilename, path, paths, anyPath, defaultDir, regPath, formatted, formattedSddl, template, condition, guid, version, language, binary, customSource, cabinet, shortcut, } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ModularizeType { IllegalValue = int.MaxValue, NotSet = -1, /// /// Column should not be modularized. This is the default value. /// None, /// /// Column should be modularized. /// Column, /// /// Column is a condition and should be modularized. /// Condition, /// /// When the column is an primary or foreign key to the Icon table it should be modularized special. /// Icon, /// /// Any Properties in the column should be modularized. /// Property, /// /// Semi-colon list of keys, all of which need to be modularized. /// SemicolonDelimited, } } /// /// Row data for a Custom Table /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Row : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private ISchemaElement parentElement; public Row() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Sequence); childCollection0.AddItem(new ElementCollection.SequenceItem(typeof(Data))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Data" == childName)) { childValue = new Data(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Row", "http://wixtoolset.org/schemas/v4/wxs"); for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } } } /// /// Used for a Custom Table. Specifies the data for the parent Row and specified Column. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Data : ISchemaElement, ISetAttributes { private string columnField; private bool columnFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Specifies in which column to insert this data. /// public string Column { get { return this.columnField; } set { this.columnFieldSet = true; this.columnField = value; } } /// /// A data value /// public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Data", "http://wixtoolset.org/schemas/v4/wxs"); if (this.columnFieldSet) { writer.WriteAttributeString("Column", this.columnField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Column" == name)) { this.columnField = value; this.columnFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } /// /// Use this element to ensure that a table appears in the installer database, even if its empty. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class EnsureTable : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private ISchemaElement parentElement; /// /// The name of the table. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("EnsureTable", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } } } /// /// This element exposes advanced WiX functionality. Use this element to declare WiX variables /// from directly within your authoring. WiX variables are not resolved until the final msi/msm/pcp /// file is actually generated. WiX variables do not persist into the msi/msm/pcp file, so they cannot /// be used when an MSI file is being installed; it's a WiX-only concept. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class WixVariable : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private YesNoType overridableField; private bool overridableFieldSet; private string valueField; private bool valueFieldSet; private ISchemaElement parentElement; /// /// The name of the variable. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// Set this value to 'yes' in order to make the variable's value overridable either by /// another WixVariable entry or via the command-line option -d<name>=<value> /// for light.exe. If the same variable is declared overridable in multiple places it /// will cause an error (since WiX won't know which value is correct). The default value /// is 'no'. /// public YesNoType Overridable { get { return this.overridableField; } set { this.overridableFieldSet = true; this.overridableField = value; } } /// /// The value of the variable. The value cannot be an empty string because that would /// make it possible to accidentally set a column to null. /// public string Value { get { return this.valueField; } set { this.valueFieldSet = true; this.valueField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("WixVariable", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.overridableFieldSet) { if ((this.overridableField == YesNoType.no)) { writer.WriteAttributeString("Overridable", "no"); } if ((this.overridableField == YesNoType.yes)) { writer.WriteAttributeString("Overridable", "yes"); } } if (this.valueFieldSet) { writer.WriteAttributeString("Value", this.valueField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("Overridable" == name)) { this.overridableField = Enums.ParseYesNoType(value); this.overridableFieldSet = true; } if (("Value" == name)) { this.valueField = value; this.valueFieldSet = true; } } } /// /// Use this element to contain definitions for instance transforms. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class InstanceTransforms : IParentElement, ICreateChildren, ISchemaElement, ISetAttributes { private ElementCollection children; private string propertyField; private bool propertyFieldSet; private ISchemaElement parentElement; public InstanceTransforms() { ElementCollection childCollection0 = new ElementCollection(ElementCollection.CollectionType.Choice); childCollection0.AddItem(new ElementCollection.ChoiceItem(typeof(Instance))); this.children = childCollection0; } public virtual IEnumerable Children { get { return this.children; } } [SuppressMessage("Microsoft.Design", "CA1043:UseIntegralOrStringArgumentForIndexers")] public virtual IEnumerable this[System.Type childType] { get { return this.children.Filter(childType); } } /// /// The Id of the Property who's value should change for each instance. /// public string Property { get { return this.propertyField; } set { this.propertyFieldSet = true; this.propertyField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } public virtual void AddChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.AddElement(child); child.ParentElement = this; } public virtual void RemoveChild(ISchemaElement child) { if ((null == child)) { throw new ArgumentNullException("child"); } this.children.RemoveElement(child); child.ParentElement = null; } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] ISchemaElement ICreateChildren.CreateChild(string childName) { if (String.IsNullOrEmpty(childName)) { throw new ArgumentNullException("childName"); } ISchemaElement childValue = null; if (("Instance" == childName)) { childValue = new Instance(); } if ((null == childValue)) { throw new InvalidOperationException(String.Concat(childName, " is not a valid child name.")); } return childValue; } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("InstanceTransforms", "http://wixtoolset.org/schemas/v4/wxs"); if (this.propertyFieldSet) { writer.WriteAttributeString("Property", this.propertyField); } for (IEnumerator enumerator = this.children.GetEnumerator(); enumerator.MoveNext(); ) { ISchemaElement childElement = ((ISchemaElement)(enumerator.Current)); childElement.OutputXml(writer); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Property" == name)) { this.propertyField = value; this.propertyFieldSet = true; } } } /// /// Defines an instance transform for your product. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class Instance : ISchemaElement, ISetAttributes { private string idField; private bool idFieldSet; private string productCodeField; private bool productCodeFieldSet; private string productNameField; private bool productNameFieldSet; private string upgradeCodeField; private bool upgradeCodeFieldSet; private ISchemaElement parentElement; /// /// The identity of the instance transform. This value will define the name by which the instance /// should be referred to on the command line. In addition, the value of the this attribute will /// determine what the value of the property specified in Property attribute on InstanceTransforms /// will change to for each instance. /// public string Id { get { return this.idField; } set { this.idFieldSet = true; this.idField = value; } } /// /// The ProductCode for this instance. /// public string ProductCode { get { return this.productCodeField; } set { this.productCodeFieldSet = true; this.productCodeField = value; } } /// /// The ProductName for this instance. /// public string ProductName { get { return this.productNameField; } set { this.productNameFieldSet = true; this.productNameField = value; } } /// /// The UpgradeCode for this instance. /// public string UpgradeCode { get { return this.upgradeCodeField; } set { this.upgradeCodeFieldSet = true; this.upgradeCodeField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("Instance", "http://wixtoolset.org/schemas/v4/wxs"); if (this.idFieldSet) { writer.WriteAttributeString("Id", this.idField); } if (this.productCodeFieldSet) { writer.WriteAttributeString("ProductCode", this.productCodeField); } if (this.productNameFieldSet) { writer.WriteAttributeString("ProductName", this.productNameField); } if (this.upgradeCodeFieldSet) { writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Id" == name)) { this.idField = value; this.idFieldSet = true; } if (("ProductCode" == name)) { this.productCodeField = value; this.productCodeFieldSet = true; } if (("ProductName" == name)) { this.productNameField = value; this.productNameFieldSet = true; } if (("UpgradeCode" == name)) { this.upgradeCodeField = value; this.upgradeCodeFieldSet = true; } } } /// /// Simplifies authoring for major upgrades, including support for preventing downgrades. /// /// The parent Package element must have valid UpgradeCode and Version attributes. /// /// When the FindRelatedProducts action detects a related product installed on the system, /// it appends the product code to the property named WIX_UPGRADE_DETECTED. After the /// FindRelatedProducts action is run, the value of the WIX_UPGRADE_DETECTED property is a /// list of product codes, separated by semicolons (;), detected on the system. /// [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class MajorUpgrade : ISchemaElement, ISetAttributes { private YesNoType allowDowngradesField; private bool allowDowngradesFieldSet; private YesNoType allowSameVersionUpgradesField; private bool allowSameVersionUpgradesFieldSet; private YesNoType disallowField; private bool disallowFieldSet; private string downgradeErrorMessageField; private bool downgradeErrorMessageFieldSet; private string disallowUpgradeErrorMessageField; private bool disallowUpgradeErrorMessageFieldSet; private YesNoType migrateFeaturesField; private bool migrateFeaturesFieldSet; private YesNoType ignoreLanguageField; private bool ignoreLanguageFieldSet; private YesNoType ignoreRemoveFailureField; private bool ignoreRemoveFailureFieldSet; private string removeFeaturesField; private bool removeFeaturesFieldSet; private ScheduleType scheduleField; private bool scheduleFieldSet; private ISchemaElement parentElement; /// /// When set to no (the default), products with lower version numbers are blocked from /// installing when a product with a higher version is installed; the DowngradeErrorMessage /// attribute must also be specified. /// /// When set to yes, any version can be installed over any other version. /// public YesNoType AllowDowngrades { get { return this.allowDowngradesField; } set { this.allowDowngradesFieldSet = true; this.allowDowngradesField = value; } } /// /// When set to no (the default), installing a product with the same version and upgrade code /// (but different product code) is allowed and treated by MSI as two products. When set to yes, /// WiX sets the msidbUpgradeAttributesVersionMaxInclusive attribute, which tells MSI to treat /// a product with the same version as a major upgrade. /// /// This is useful when two product versions differ only in the fourth version field. MSI /// specifically ignores that field when comparing product versions, so two products that /// differ only in the fourth version field are the same product and need this attribute set to /// yes to be detected. /// /// Note that because MSI ignores the fourth product version field, setting this attribute to /// yes also allows downgrades when the first three product version fields are identical. /// For example, product version 1.0.0.1 will "upgrade" 1.0.0.2998 because they're seen as the /// same version (1.0.0). That could reintroduce serious bugs so the safest choice is to change /// the first three version fields and omit this attribute to get the default of no. /// /// This attribute cannot be "yes" when AllowDowngrades is also "yes" -- AllowDowngrades /// already allows two products with the same version number to upgrade each other. /// public YesNoType AllowSameVersionUpgrades { get { return this.allowSameVersionUpgradesField; } set { this.allowSameVersionUpgradesFieldSet = true; this.allowSameVersionUpgradesField = value; } } /// /// When set to yes, products with higer version numbers are blocked from /// installing when a product with a lower version is installed; the UpgradeErrorMessage /// attribute must also be specified. /// /// When set to no (the default), any version can be installed over any lower version. /// public YesNoType Disallow { get { return this.disallowField; } set { this.disallowFieldSet = true; this.disallowField = value; } } /// /// The message displayed if users try to install a product with a lower version number /// when a product with a higher version is installed. Used only when AllowDowngrades /// is no (the default). /// public string DowngradeErrorMessage { get { return this.downgradeErrorMessageField; } set { this.downgradeErrorMessageFieldSet = true; this.downgradeErrorMessageField = value; } } /// /// The message displayed if users try to install a product with a higer version number /// when a product with a lower version is installed. Used only when Disallow /// is yes. /// public string DisallowUpgradeErrorMessage { get { return this.disallowUpgradeErrorMessageField; } set { this.disallowUpgradeErrorMessageFieldSet = true; this.disallowUpgradeErrorMessageField = value; } } /// /// When set to yes (the default), the MigrateFeatureStates standard action will set the /// feature states of the upgrade product to those of the installed product. /// /// When set to no, the installed features have no effect on the upgrade installation. /// public YesNoType MigrateFeatures { get { return this.migrateFeaturesField; } set { this.migrateFeaturesFieldSet = true; this.migrateFeaturesField = value; } } /// /// When set to yes, the Upgrade table rows will match any product with the same UpgradeCode. /// /// When set to no (the default), the Upgrade table rows will match only products with the /// same UpgradeCode and ProductLanguage. /// public YesNoType IgnoreLanguage { get { return this.ignoreLanguageField; } set { this.ignoreLanguageFieldSet = true; this.ignoreLanguageField = value; } } /// /// When set to yes, failures removing the installed product during the upgrade will be /// ignored. /// /// When set to no (the default), failures removing the installed product during the upgrade /// will be considered a failure and, depending on the scheduling, roll back the upgrade. /// public YesNoType IgnoreRemoveFailure { get { return this.ignoreRemoveFailureField; } set { this.ignoreRemoveFailureFieldSet = true; this.ignoreRemoveFailureField = value; } } /// /// A formatted string that contains the list of features to remove from the installed /// product. The default is to remove all features. Note that if you use formatted property /// values that evaluate to an empty string, no features will be removed; only omitting /// this attribute defaults to removing all features. /// public string RemoveFeatures { get { return this.removeFeaturesField; } set { this.removeFeaturesFieldSet = true; this.removeFeaturesField = value; } } /// /// Determines the scheduling of the RemoveExistingProducts standard action, which is when /// the installed product is removed. The default is "afterInstallValidate" which removes /// the installed product entirely before installing the upgrade product. It's slowest but /// gives the most flexibility in changing components and features in the upgrade product. /// /// For more information, see /// public ScheduleType Schedule { get { return this.scheduleField; } set { this.scheduleFieldSet = true; this.scheduleField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Parses a ScheduleType from a string. /// public static ScheduleType ParseScheduleType(string value) { ScheduleType parsedValue; MajorUpgrade.TryParseScheduleType(value, out parsedValue); return parsedValue; } /// /// Tries to parse a ScheduleType from a string. /// public static bool TryParseScheduleType(string value, out ScheduleType parsedValue) { parsedValue = ScheduleType.NotSet; if (string.IsNullOrEmpty(value)) { return false; } if (("afterInstallValidate" == value)) { parsedValue = ScheduleType.afterInstallValidate; } else { if (("afterInstallInitialize" == value)) { parsedValue = ScheduleType.afterInstallInitialize; } else { if (("afterInstallExecute" == value)) { parsedValue = ScheduleType.afterInstallExecute; } else { if (("afterInstallExecuteAgain" == value)) { parsedValue = ScheduleType.afterInstallExecuteAgain; } else { if (("afterInstallFinalize" == value)) { parsedValue = ScheduleType.afterInstallFinalize; } else { parsedValue = ScheduleType.IllegalValue; return false; } } } } } return true; } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("MajorUpgrade", "http://wixtoolset.org/schemas/v4/wxs"); if (this.allowDowngradesFieldSet) { if ((this.allowDowngradesField == YesNoType.no)) { writer.WriteAttributeString("AllowDowngrades", "no"); } if ((this.allowDowngradesField == YesNoType.yes)) { writer.WriteAttributeString("AllowDowngrades", "yes"); } } if (this.allowSameVersionUpgradesFieldSet) { if ((this.allowSameVersionUpgradesField == YesNoType.no)) { writer.WriteAttributeString("AllowSameVersionUpgrades", "no"); } if ((this.allowSameVersionUpgradesField == YesNoType.yes)) { writer.WriteAttributeString("AllowSameVersionUpgrades", "yes"); } } if (this.disallowFieldSet) { if ((this.disallowField == YesNoType.no)) { writer.WriteAttributeString("Disallow", "no"); } if ((this.disallowField == YesNoType.yes)) { writer.WriteAttributeString("Disallow", "yes"); } } if (this.downgradeErrorMessageFieldSet) { writer.WriteAttributeString("DowngradeErrorMessage", this.downgradeErrorMessageField); } if (this.disallowUpgradeErrorMessageFieldSet) { writer.WriteAttributeString("DisallowUpgradeErrorMessage", this.disallowUpgradeErrorMessageField); } if (this.migrateFeaturesFieldSet) { if ((this.migrateFeaturesField == YesNoType.no)) { writer.WriteAttributeString("MigrateFeatures", "no"); } if ((this.migrateFeaturesField == YesNoType.yes)) { writer.WriteAttributeString("MigrateFeatures", "yes"); } } if (this.ignoreLanguageFieldSet) { if ((this.ignoreLanguageField == YesNoType.no)) { writer.WriteAttributeString("IgnoreLanguage", "no"); } if ((this.ignoreLanguageField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreLanguage", "yes"); } } if (this.ignoreRemoveFailureFieldSet) { if ((this.ignoreRemoveFailureField == YesNoType.no)) { writer.WriteAttributeString("IgnoreRemoveFailure", "no"); } if ((this.ignoreRemoveFailureField == YesNoType.yes)) { writer.WriteAttributeString("IgnoreRemoveFailure", "yes"); } } if (this.removeFeaturesFieldSet) { writer.WriteAttributeString("RemoveFeatures", this.removeFeaturesField); } if (this.scheduleFieldSet) { if ((this.scheduleField == ScheduleType.afterInstallValidate)) { writer.WriteAttributeString("Schedule", "afterInstallValidate"); } if ((this.scheduleField == ScheduleType.afterInstallInitialize)) { writer.WriteAttributeString("Schedule", "afterInstallInitialize"); } if ((this.scheduleField == ScheduleType.afterInstallExecute)) { writer.WriteAttributeString("Schedule", "afterInstallExecute"); } if ((this.scheduleField == ScheduleType.afterInstallExecuteAgain)) { writer.WriteAttributeString("Schedule", "afterInstallExecuteAgain"); } if ((this.scheduleField == ScheduleType.afterInstallFinalize)) { writer.WriteAttributeString("Schedule", "afterInstallFinalize"); } } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("AllowDowngrades" == name)) { this.allowDowngradesField = Enums.ParseYesNoType(value); this.allowDowngradesFieldSet = true; } if (("AllowSameVersionUpgrades" == name)) { this.allowSameVersionUpgradesField = Enums.ParseYesNoType(value); this.allowSameVersionUpgradesFieldSet = true; } if (("Disallow" == name)) { this.disallowField = Enums.ParseYesNoType(value); this.disallowFieldSet = true; } if (("DowngradeErrorMessage" == name)) { this.downgradeErrorMessageField = value; this.downgradeErrorMessageFieldSet = true; } if (("DisallowUpgradeErrorMessage" == name)) { this.disallowUpgradeErrorMessageField = value; this.disallowUpgradeErrorMessageFieldSet = true; } if (("MigrateFeatures" == name)) { this.migrateFeaturesField = Enums.ParseYesNoType(value); this.migrateFeaturesFieldSet = true; } if (("IgnoreLanguage" == name)) { this.ignoreLanguageField = Enums.ParseYesNoType(value); this.ignoreLanguageFieldSet = true; } if (("IgnoreRemoveFailure" == name)) { this.ignoreRemoveFailureField = Enums.ParseYesNoType(value); this.ignoreRemoveFailureFieldSet = true; } if (("RemoveFeatures" == name)) { this.removeFeaturesField = value; this.removeFeaturesFieldSet = true; } if (("Schedule" == name)) { this.scheduleField = MajorUpgrade.ParseScheduleType(value); this.scheduleFieldSet = true; } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public enum ScheduleType { IllegalValue = int.MaxValue, NotSet = -1, /// /// (Default) Schedules RemoveExistingProducts after the InstallValidate standard /// action. This scheduling removes the installed product entirely before installing /// the upgrade product. It's slowest but gives the most flexibility in changing /// components and features in the upgrade product. Note that if the installation /// of the upgrade product fails, the machine will have neither version installed. /// afterInstallValidate, /// /// Schedules RemoveExistingProducts after the InstallInitialize standard action. /// This is similar to the afterInstallValidate scheduling, but if the installation /// of the upgrade product fails, Windows Installer also rolls back the removal of /// the installed product -- in other words, reinstalls it. /// afterInstallInitialize, /// /// Schedules RemoveExistingProducts between the InstallExecute and InstallFinalize standard actions. /// This scheduling installs the upgrade product "on top of" the installed product then lets /// RemoveExistingProducts uninstall any components that don't also exist in the upgrade product. /// Note that this scheduling requires strict adherence to the component rules because it relies /// on component reference counts to be accurate during installation of the upgrade product and /// removal of the installed product. For more information, see /// afterInstallExecute, /// /// Schedules RemoveExistingProducts between the InstallExecuteAgain and InstallFinalize standard actions. /// This is identical to the afterInstallExecute scheduling but after the InstallExecuteAgain standard /// action instead of InstallExecute. /// afterInstallExecuteAgain, /// /// Schedules RemoveExistingProducts after the InstallFinalize standard action. This is similar to the /// afterInstallExecute and afterInstallExecuteAgain schedulings but takes place outside the /// installation transaction so if installation of the upgrade product fails, Windows Installer does /// not roll back the removal of the installed product, so the machine will have both versions /// installed. /// afterInstallFinalize, } } [GeneratedCode("WixBuildTools.XsdGen", "4.0.0.0")] public class ProductSearch : ISchemaElement, ISetAttributes { private string minimumField; private bool minimumFieldSet; private string maximumField; private bool maximumFieldSet; private string languageField; private bool languageFieldSet; private YesNoType includeMinimumField; private bool includeMinimumFieldSet; private YesNoType includeMaximumField; private bool includeMaximumFieldSet; private YesNoType excludeLanguagesField; private bool excludeLanguagesFieldSet; private string upgradeCodeField; private bool upgradeCodeFieldSet; private string contentField; private bool contentFieldSet; private ISchemaElement parentElement; /// /// Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. /// public string Minimum { get { return this.minimumField; } set { this.minimumFieldSet = true; this.minimumField = value; } } /// /// Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. /// public string Maximum { get { return this.maximumField; } set { this.maximumFieldSet = true; this.maximumField = value; } } /// /// Specifies the set of languages detected by FindRelatedProducts. Enter a list of numeric language identifiers (LANGID) separated by commas (,). Leave this value null to specify all languages. Set ExcludeLanguages to "yes" in order detect all languages, excluding the languages listed in this value. /// public string Language { get { return this.languageField; } set { this.languageFieldSet = true; this.languageField = value; } } /// /// Set to "no" to make the range of versions detected exclude the value specified in Minimum. This attribute is "yes" by default. /// public YesNoType IncludeMinimum { get { return this.includeMinimumField; } set { this.includeMinimumFieldSet = true; this.includeMinimumField = value; } } /// /// Set to "yes" to make the range of versions detected include the value specified in Maximum. /// public YesNoType IncludeMaximum { get { return this.includeMaximumField; } set { this.includeMaximumFieldSet = true; this.includeMaximumField = value; } } /// /// Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. /// public YesNoType ExcludeLanguages { get { return this.excludeLanguagesField; } set { this.excludeLanguagesFieldSet = true; this.excludeLanguagesField = value; } } /// /// This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. /// public string UpgradeCode { get { return this.upgradeCodeField; } set { this.upgradeCodeFieldSet = true; this.upgradeCodeField = value; } } public string Content { get { return this.contentField; } set { this.contentFieldSet = true; this.contentField = value; } } public virtual ISchemaElement ParentElement { get { return this.parentElement; } set { this.parentElement = value; } } /// /// Processes this element and all child elements into an XmlWriter. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] public virtual void OutputXml(XmlWriter writer) { if ((null == writer)) { throw new ArgumentNullException("writer"); } writer.WriteStartElement("ProductSearch", "http://wixtoolset.org/schemas/v4/wxs"); if (this.minimumFieldSet) { writer.WriteAttributeString("Minimum", this.minimumField); } if (this.maximumFieldSet) { writer.WriteAttributeString("Maximum", this.maximumField); } if (this.languageFieldSet) { writer.WriteAttributeString("Language", this.languageField); } if (this.includeMinimumFieldSet) { if ((this.includeMinimumField == YesNoType.no)) { writer.WriteAttributeString("IncludeMinimum", "no"); } if ((this.includeMinimumField == YesNoType.yes)) { writer.WriteAttributeString("IncludeMinimum", "yes"); } } if (this.includeMaximumFieldSet) { if ((this.includeMaximumField == YesNoType.no)) { writer.WriteAttributeString("IncludeMaximum", "no"); } if ((this.includeMaximumField == YesNoType.yes)) { writer.WriteAttributeString("IncludeMaximum", "yes"); } } if (this.excludeLanguagesFieldSet) { if ((this.excludeLanguagesField == YesNoType.no)) { writer.WriteAttributeString("ExcludeLanguages", "no"); } if ((this.excludeLanguagesField == YesNoType.yes)) { writer.WriteAttributeString("ExcludeLanguages", "yes"); } } if (this.upgradeCodeFieldSet) { writer.WriteAttributeString("UpgradeCode", this.upgradeCodeField); } if (this.contentFieldSet) { writer.WriteString(this.contentField); } writer.WriteEndElement(); } [SuppressMessage("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] void ISetAttributes.SetAttribute(string name, string value) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("name"); } if (("Minimum" == name)) { this.minimumField = value; this.minimumFieldSet = true; } if (("Maximum" == name)) { this.maximumField = value; this.maximumFieldSet = true; } if (("Language" == name)) { this.languageField = value; this.languageFieldSet = true; } if (("IncludeMinimum" == name)) { this.includeMinimumField = Enums.ParseYesNoType(value); this.includeMinimumFieldSet = true; } if (("IncludeMaximum" == name)) { this.includeMaximumField = Enums.ParseYesNoType(value); this.includeMaximumFieldSet = true; } if (("ExcludeLanguages" == name)) { this.excludeLanguagesField = Enums.ParseYesNoType(value); this.excludeLanguagesFieldSet = true; } if (("UpgradeCode" == name)) { this.upgradeCodeField = value; this.upgradeCodeFieldSet = true; } if (("Content" == name)) { this.contentField = value; this.contentFieldSet = true; } } } }