WiX Database XML Schema

Element: Registry

Derived By

Restricting anyType

Attributes

Name  Type  Required?  Default  Description 
Id  string  No    Primary key used to identify this particular entry.
Action  NMTOKEN (restriction)  No    This is the action that will be taken for this registry key.
Key  string  No    The localizable key for the registry value.
KeyPath  YesNoType  No    Set this attribute to 'yes' to make this registry key the KeyPath of the parent component.
Name  string  No    The localizable registry value name.
Root  RegistryRootType  No    The predefined root key for the registry value.
Type  NMTOKEN (restriction)  No    Set this attribute to the type of the desired registry key.
Value  string  No    Set this attribute to the localizable registry value. This value is formatted.

Content Model

Contains elements as defined in the following table.

Component  Type  Occurs  Description 
    0..*   
any    1..1  Allow any element from the ##other namespace.
Permission  anyType (restriction)  1..1  Sets ACLs on File, Registry, or CreateFolder.
Registry  anyType (restriction)  1..1   
RegistryValue  anyType (restriction)  1..1  Used to create a registry value. For multi-string values, this can be used to prepend or append values.

Referenced By

Definition

<xs:element name="Registry">
<xs:annotation>
<xs:appinfo>
<xse:msiRef table="Registry" href="http://msdn.microsoft.com/library/aa371168.aspx" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
<xse:deprecated ref="RegistryValue" xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="Permission" />
<xs:element ref="RegistryValue" />
<xs:element ref="Registry" />
<xs:any namespace="##other" processContents="lax">
<xs:annotation>
<xs:documentation>
Extensibility point in the WiX XML Schema. Schema extensions can register additional
elements at this point in the schema.
</xs:documentation>
</xs:annotation>
</xs:any>
</xs:choice>
<xs:attribute name="Id" type="xs:string">
<xs:annotation>
<xs:documentation>
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.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Action">
<xs:annotation>
<xs:documentation>
This is the action that will be taken for this registry key.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="append">
<xs:annotation>
<xs:documentation>
Appends the specified value(s) to a multiString registry key.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="createKey">
<xs:annotation>
<xs:documentation>
Creates the key, if absent, when the parent component is installed.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="createKeyAndRemoveKeyOnUninstall">
<xs:annotation>
<xs:documentation>
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.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="prepend">
<xs:annotation>
<xs:documentation>
Prepends the specified value(s) to a multiString registry key.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="remove">
<xs:annotation>
<xs:documentation>
Removes a registry name when the parent component in installed.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="removeKeyOnInstall">
<xs:annotation>
<xs:documentation>
Removes a key with all its values and subkeys when the parent component is installed.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="removeKeyOnUninstall">
<xs:annotation>
<xs:documentation>
Removes a key with all its values and subkeys when the parent component is uninstalled.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="write">
<xs:annotation>
<xs:documentation>
Writes a registry value.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Key" type="xs:string">
<xs:annotation>
<xs:documentation>The localizable key for the registry value.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="KeyPath" type="YesNoType">
<xs:annotation>
<xs:documentation>
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.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string">
<xs:annotation>
<xs:documentation>
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.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Root" type="RegistryRootType">
<xs:annotation>
<xs:documentation>
The predefined root key for the registry value.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Type">
<xs:annotation>
<xs:documentation>
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'.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="string">
<xs:annotation>
<xs:documentation>
The value is interpreted and stored as a string (REG_SZ).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="integer">
<xs:annotation>
<xs:documentation>
The value is interpreted and stored as an integer (REG_DWORD).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="binary">
<xs:annotation>
<xs:documentation>
The value is interpreted and stored as a hexadecimal value (REG_BINARY).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="expandable">
<xs:annotation>
<xs:documentation>
The value is interpreted and stored as an expandable string (REG_EXPAND_SZ).
</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="multiString">
<xs:annotation>
<xs:documentation>
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.
</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Value" type="xs:string">
<xs:annotation>
<xs:documentation>
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'.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>