<?xml version="1.0" encoding="utf-8"?> | |
<!-- | |
<copyright file="lux.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/2009/Lux" | |
xmlns="http://schemas.microsoft.com/wix/2009/Lux"> | |
<xs:annotation> | |
<xs:documentation> | |
The source code schema for the Windows Installer XML Toolset Lux Extension. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" /> | |
<xs:element name="Mutation"> | |
<xs:annotation> | |
<xs:documentation> | |
Test mutations let you author unit tests with different expected results. The mutation | |
id is passed as the value of the WIXLUX_RUNNING_MUTATION property. Your custom action, | |
typically in an '#ifdef DEBUG' block, can retrieve the WIXLUX_RUNNING_MUTATION property | |
and hard-code different behavior based on the mutation. To author test mutations, use | |
the Mutation element with UnitTest elements as children. | |
</xs:documentation> | |
<xs:appinfo> | |
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" /> | |
</xs:appinfo> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:annotation> | |
<xs:documentation> | |
Child UnitTest elements are validated when the parent mutation is being executed. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:element ref="UnitTest"/> | |
</xs:choice> | |
<xs:attribute name="Id" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
Value of the WIXLUX_RUNNING_MUTATION property set by the mutation. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="UnitTest"> | |
<xs:annotation> | |
<xs:documentation> | |
Describes a unit test to be executed against a particular custom action, resulting in a | |
particular property value. Single-value properties, multi-value properties, and | |
name/value-pair properties can all be tested declaratively. | |
</xs:documentation> | |
<xs:appinfo> | |
<xse:parent namespace="http://schemas.microsoft.com/wix/2009/Lux" ref="Mutation" /> | |
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" /> | |
</xs:appinfo> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:annotation> | |
<xs:documentation> | |
Child UnitTest elements are used to test multi-value properties. Note that Property | |
and ValueDelimiter or NameValueDelimiter must be specified in the parent element. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:element ref="Condition"/> | |
<xs:element ref="Expression"/> | |
<xs:element ref="UnitTest"/> | |
</xs:choice> | |
<xs:attribute name="Id" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
Identifier of the unit test. If you omit this attribute, a stable identifier is generated for you. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="CustomAction" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
Identifier of the custom action to be tested. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="Property" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
Name of the property set by the custom action. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="Operator" default="equal"> | |
<xs:annotation> | |
<xs:documentation> | |
The operator to apply to the property and value. Default is "equal." | |
</xs:documentation> | |
</xs:annotation> | |
<xs:simpleType> | |
<xs:restriction base="xs:NMTOKEN"> | |
<xs:enumeration value="equal"> | |
<xs:annotation> | |
<xs:documentation> | |
(Default) Compares Property to Value and succeeds if they are equal. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="notEqual"> | |
<xs:annotation> | |
<xs:documentation> | |
Compares Property to Value and succeeds if they are NOT equal. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="caseInsensitiveEqual"> | |
<xs:annotation> | |
<xs:documentation> | |
Compares Property to Value and succeeds if they are equal (ignoring case). | |
</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
<xs:enumeration value="caseInsensitiveNotEqual"> | |
<xs:annotation> | |
<xs:documentation> | |
Compares Property to Value and succeeds if they are NOT equal (ignoring case). | |
</xs:documentation> | |
</xs:annotation> | |
</xs:enumeration> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
<xs:attribute name="Value" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
The value to compare to the property. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="ValueSeparator" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
One character that is used to separate values in a multi-value property. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="NameValueSeparator" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
One character that is used to separate values in a name/value-pair multi-value property. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
<xs:attribute name="Index" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
A formatted string that evaluates to either an integer index into a multi-value property or a string name of a name/value-pair multi-value property. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Condition"> | |
<xs:annotation> | |
<xs:documentation> | |
Conditions for a unit test. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="xs:string" /> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="Expression"> | |
<xs:annotation> | |
<xs:documentation> | |
An expression that must evaluate to true to succeed. Cannot be specified if Property is specified. | |
</xs:documentation> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:simpleContent> | |
<xs:extension base="xs:string" /> | |
</xs:simpleContent> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="UnitTestRef"> | |
<xs:annotation> | |
<xs:documentation> | |
Identifies a unit test to be linked into a project. | |
</xs:documentation> | |
<xs:appinfo> | |
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Fragment" /> | |
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Product" /> | |
</xs:appinfo> | |
</xs:annotation> | |
<xs:complexType> | |
<xs:attribute name="Id" type="xs:string"> | |
<xs:annotation> | |
<xs:documentation> | |
Identifier of the unit test to be included. | |
</xs:documentation> | |
</xs:annotation> | |
</xs:attribute> | |
</xs:complexType> | |
</xs:element> | |
</xs:schema> |