blob: 2a22609414d14a1fe3e9745c7be2c615afaf3a14 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="firewall.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
targetNamespace="http://schemas.microsoft.com/wix/FirewallExtension"
xmlns="http://schemas.microsoft.com/wix/FirewallExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset Firewall Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="FirewallException">
<xs:annotation>
<xs:documentation>
Registers an exception for a program or a specific port and protocol in the Windows Firewall
on Windows XP SP2, Windows Server 2003 SP1, and later. For more information about the Windows
Firewall, see <html:a href="http://msdn2.microsoft.com/en-us/library/aa364679.aspx">
About Windows Firewall API</html:a>.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Component" />
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Explicitly-listed remote addresses that this exception allows through the
firewall.
</xs:documentation>
</xs:annotation>
<xs:element ref="RemoteAddress" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Unique ID of this firewall exception.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of this firewall exception, visible to the user in the firewall
control panel.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Scope">
<xs:annotation>
<xs:documentation>
The scope of this firewall exception, which indicates whether incoming
connections can come from any computer including those on the Internet
or only those on the local network subnet. To more precisely specify
allowed remote address, specify a custom scope using RemoteAddress
child elements.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="any" />
<xs:enumeration value="localSubnet" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Port" type="xs:string">
<xs:annotation>
<xs:documentation>
Port to allow through the firewall for this exception.
If you use Port and also File or Program in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Protocol">
<xs:annotation>
<xs:documentation>
IP protocol used for this firewall exception. If Port is defined,
"tcp" is assumed if the protocol is not specified.
If you use Protocol and also File or Program in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="tcp" />
<xs:enumeration value="udp" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="File" type="xs:string">
<xs:annotation>
<xs:documentation>
Identifier of a file to be granted access to all incoming ports and
protocols. If you use File, you cannot also use Program.
If you use File and also Port or Protocol in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Program" type="xs:string">
<xs:annotation>
<xs:documentation>
Path to a target program to be granted access to all incoming ports and
protocols. Note that this is a formatted field, so you can use [#fileId]
syntax to refer to a file being installed. If you use Program, you cannot
also use File.
If you use Program and also Port or Protocol in the same
FirewallException element, the exception will fail to install on
Windows XP and Windows Server 2003. IgnoreFailure="yes" can be used to
ignore the resulting failure, but the exception will not be added.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="IgnoreFailure" type="YesNoType">
<xs:annotation>
<xs:documentation>
If "yes," failures to register this firewall exception will be silently
ignored. If "no" (the default), failures will cause rollback.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Profile">
<xs:annotation>
<xs:documentation>
Profile type for this firewall exception. Default is "all".
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="domain" />
<xs:enumeration value="private" />
<xs:enumeration value="public" />
<xs:enumeration value="all" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>
Description for this firewall rule displayed in Windows Firewall manager in
Windows Vista and later.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="RemoteAddress">
<xs:annotation>
<xs:documentation>
A remote address to which the port or program can listen. Address formats vary
based on the version of Windows and Windows Firewall the program is being installed
on. For Windows XP SP2 and Windows Server 2003 SP1, see
<html:a href="http://msdn2.microsoft.com/en-us/library/aa365270.aspx">
RemoteAddresses Property</html:a>.
For Windows Vista and Windows Server 2008, see
<html:a href="http://msdn2.microsoft.com/en-us/library/aa365366.aspx">
RemoteAddresses Property</html:a>.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:annotation>
<xs:documentation>
A remote address.
</xs:documentation>
</xs:annotation>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="YesNoType">
<xs:annotation>
<xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation>
</xs:annotation>
<xs:restriction base='xs:NMTOKEN'>
<xs:enumeration value="no"/>
<xs:enumeration value="yes"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>