From bd5ea18519dddfd2a65edc1f146c9e56b6a7a40f Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 4 Aug 2005 20:02:48 +0000 Subject: [PATCH] Included XmlEditor addin. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@313 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- data/schemas/AddIn.xsd | 233 + data/schemas/W3C-License.html | 98 + data/schemas/XMLSchema.xsd | 2534 +++++++ data/schemas/appconfig.xsd | 1015 +++ data/schemas/manifest.xsd | 198 + data/schemas/nant-0.84.xsd | 2137 ++++++ data/schemas/nant.xsd | 2216 ++++++ data/schemas/readme.txt | 59 + data/schemas/wix.xsd | 6535 +++++++++++++++++ data/schemas/xslt.xsd | 388 + .../XmlEditor/Project/AssemblyInfo.cs | 4 +- .../XmlEditor/Project/XmlEditor.addin | 69 +- .../XmlEditor/Project/XmlEditor.csproj | 3 + .../Project/XmlEditorAddInOptions.cs | 12 +- .../XmlEditor/Project/XmlSchemaAssociation.cs | 43 +- .../XmlEditor/Project/XmlSchemaManager.cs | 2 + .../XmlEditor/Project/XmlView.cs | 2 +- .../XmlEditor/Test/AssemblyInfo.cs | 4 +- src/SharpDevelop.sln | 5 +- 19 files changed, 15472 insertions(+), 85 deletions(-) create mode 100644 data/schemas/AddIn.xsd create mode 100644 data/schemas/W3C-License.html create mode 100644 data/schemas/XMLSchema.xsd create mode 100644 data/schemas/appconfig.xsd create mode 100644 data/schemas/manifest.xsd create mode 100644 data/schemas/nant-0.84.xsd create mode 100644 data/schemas/nant.xsd create mode 100644 data/schemas/readme.txt create mode 100644 data/schemas/wix.xsd create mode 100644 data/schemas/xslt.xsd diff --git a/data/schemas/AddIn.xsd b/data/schemas/AddIn.xsd new file mode 100644 index 0000000000..21f2bcc0c6 --- /dev/null +++ b/data/schemas/AddIn.xsd @@ -0,0 +1,233 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/schemas/W3C-License.html b/data/schemas/W3C-License.html new file mode 100644 index 0000000000..2edbb1ad27 --- /dev/null +++ b/data/schemas/W3C-License.html @@ -0,0 +1,98 @@ + + + + + W3C Software License + + + + +

W3C® SOFTWARE NOTICE AND LICENSE

+ +

http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231

+ +

This work (and included software, documentation such as READMEs, or other +related items) is being provided by the copyright holders under the following +license. By obtaining, using and/or copying this work, you (the licensee) +agree that you have read, understood, and will comply with the following +terms and conditions.

+ +

Permission to copy, modify, and distribute this software and its +documentation, with or without modification, for any purpose and without +fee or royalty is hereby granted, provided that you include the following on +ALL copies of the software and documentation or portions thereof, including +modifications:

+
    +
  1. The full text of this NOTICE in a location viewable to users of the + redistributed or derivative work.
  2. +
  3. Any pre-existing intellectual property disclaimers, notices, or terms + and conditions. If none exist, the W3C Software Short + Notice should be included (hypertext is preferred, text is permitted) + within the body of any redistributed or derivative code.
  4. +
  5. Notice of any changes or modifications to the files, including the date + changes were made. (We recommend you provide URIs to the location from + which the code is derived.)
  6. +
+ +

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS +MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR +PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE +ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

+ +

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR +DOCUMENTATION.

+ +

The name and trademarks of copyright holders may NOT be used in +advertising or publicity pertaining to the software without specific, written +prior permission. Title to copyright in this software and any associated +documentation will at all times remain with copyright holders.

+ +

+ +

____________________________________

+ +

This formulation of W3C's notice and license became active on December 31 +2002. This version removes the copyright ownership notice such that this +license can be used with materials other than those owned by the W3C, +reflects that ERCIM is now a host of the W3C, includes references to this +specific dated version of the license, and removes the ambiguous grant of +"use". Otherwise, this version is the same as the previous +version and is written so as to preserve the Free +Software Foundation's assessment of GPL compatibility and OSI's certification +under the Open Source +Definition. Please see our Copyright FAQ for +common questions about using materials from our site, including specific +terms and conditions for packages like libwww, Amaya, and Jigsaw. Other +questions about this notice can be directed to site-policy@w3.org.

+
+ Joseph Reagle <site-policy@w3.org> +
+ +

Last revised $Id: copyright-software-20021231.html,v 1.11 2004/07/06 16:02:49 slesch Exp $

+ + diff --git a/data/schemas/XMLSchema.xsd b/data/schemas/XMLSchema.xsd new file mode 100644 index 0000000000..2e9a2729ec --- /dev/null +++ b/data/schemas/XMLSchema.xsd @@ -0,0 +1,2534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]> + + + + Part 1 version: Id: structures.xsd,v 1.2 2004/01/15 11:34:25 ht Exp + Part 2 version: Id: datatypes.xsd,v 1.3 2004/01/23 18:11:13 ht Exp + + + + + + The schema corresponding to this document is normative, + with respect to the syntactic constraints it expresses in the + XML Schema language. The documentation (within <documentation> elements) + below, is not normative, but rather highlights important aspects of + the W3C Recommendation of which this is a part + + + + + The simpleType element and all of its members are defined + towards the end of this schema document + + + + + + Get access to the xml: attribute groups for xml:lang + as declared on 'schema' and 'documentation' below + + + + + + + + This type is extended by almost all schema types + to allow attributes from other namespaces to be + added to user schemas. + + + + + + + + + + + + + This type is extended by all types which allow annotation + other than <schema> itself + + + + + + + + + + + + + + + + This group is for the + elements which occur freely at the top level of schemas. + All of their types are based on the "annotated" type by extension. + + + + + + + + + + + + + This group is for the + elements which can self-redefine (see <redefine> below). + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {extension, restriction} + + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {extension, restriction, list, union} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + for maxOccurs + + + + + + + + + + + + for all particles + + + + + + + for element, group and attributeGroup, + which both define and reference + + + + + + + + 'complexType' uses this + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This branch is short for + <complexContent> + <restriction base="xs:anyType"> + ... + </restriction> + </complexContent> + + + + + + + + + + + + + + + Will be restricted to required or forbidden + + + + + + Not allowed if simpleContent child is chosen. + May be overriden by setting on complexContent child. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice is added simply to + make this a valid restriction per the REC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Overrides any setting on complexType parent. + + + + + + + + + + + + + + + This choice is added simply to + make this a valid restriction per the REC + + + + + + + + + + + + + + + + + No typeDefParticle group reference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + #all or (possibly empty) subset of {substitution, extension, + restriction} + + + + + + + + + + + + + + + + + + + + + + + + + The element element can be used either + at the top level to define an element-type binding globally, + or within a content model to either reference a globally-defined + element or type or declare an element-type binding locally. + The ref form is not allowed at the top level. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + group type for explicit groups, named top-level groups and + group references + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + group type for the three kinds of group + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This choice with min/max is here to + avoid a pblm with the Elt:All/Choice/Seq + Particle derivation constraint + + + + + + + + + + restricted max/min + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Only elements allowed inside + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + simple type for the value of the 'namespace' attr of + 'any' and 'anyAttribute' + + + + Value is + ##any - - any non-conflicting WFXML/attribute at all + + ##other - - any non-conflicting WFXML/attribute from + namespace other than targetNS + + ##local - - any unqualified non-conflicting WFXML/attribute + + one or - - any non-conflicting WFXML/attribute from + more URI the listed namespaces + references + (space separated) + + ##targetNamespace or ##local may appear in the above list, to + refer to the targetNamespace of the enclosing + schema or an absent targetNamespace respectively + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A subset of XPath expressions for use +in selectors + A utility type, not for public +use + + + + The following pattern is intended to allow XPath + expressions per the following EBNF: + Selector ::= Path ( '|' Path )* + Path ::= ('.//')? Step ( '/' Step )* + Step ::= '.' | NameTest + NameTest ::= QName | '*' | NCName ':' '*' + child:: is also allowed + + + + + + + + + + + + + + + + + + + + + + + A subset of XPath expressions for use +in fields + A utility type, not for public +use + + + + The following pattern is intended to allow XPath + expressions per the same EBNF as for selector, + with the following change: + Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest ) + + + + + + + + + + + + + + + + + + + + + + + + + + + The three kinds of identity constraints, all with + type of or derived from 'keybase'. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + A public identifier, per ISO 8879 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + notations for use within XML Schema schemas + + + + + + + + + Not the real urType, but as close an approximation as we can + get in the XML representation + + + + + + + + + + First the built-in primitive datatypes. These definitions are for + information only, the real built-in definitions are magic. + + + + For each built-in datatype in this schema (both primitive and + derived) can be uniquely addressed via a URI constructed + as follows: + 1) the base URI is the URI of the XML Schema namespace + 2) the fragment identifier is the name of the datatype + + For example, to address the int datatype, the URI is: + + http://www.w3.org/2001/XMLSchema#int + + Additionally, each facet definition element can be uniquely + addressed via a URI constructed as follows: + 1) the base URI is the URI of the XML Schema namespace + 2) the fragment identifier is the name of the facet + + For example, to address the maxInclusive facet, the URI is: + + http://www.w3.org/2001/XMLSchema#maxInclusive + + Additionally, each facet usage in a built-in datatype definition + can be uniquely addressed via a URI constructed as follows: + 1) the base URI is the URI of the XML Schema namespace + 2) the fragment identifier is the name of the datatype, followed + by a period (".") followed by the name of the facet + + For example, to address the usage of the maxInclusive facet in + the definition of int, the URI is: + + http://www.w3.org/2001/XMLSchema#int.maxInclusive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NOTATION cannot be used directly in a schema; rather a type + must be derived from it by specifying at least one enumeration + facet whose value is the name of a NOTATION declared in the + schema. + + + + + + + + + + Now the derived primitive types + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern specifies the content of section 2.12 of XML 1.0e2 + and RFC 3066 (Revised version of RFC 1766). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern matches production 7 from the XML spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pattern matches production 5 from the XML spec + + + + + + + + + + + + + + + pattern matches production 4 from the Namespaces in XML spec + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + #all or (possibly empty) subset of {restriction, union, list} + + + A utility type, not for public use + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Can be restricted to required or forbidden + + + + + + + + + + + + + + + + + + Required at the top level + + + + + + + + + + + + + + + + + + + Forbidden when nested + + + + + + + + + + + + + + + + + + + We should use a substitution group for facets, but + that's ruled out because it would allow users to + add their own, which we're not ready for yet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + base attribute and simpleType child are mutually + exclusive, but one or other is required + + + + + + + + + + + + + + + + itemType attribute and simpleType child are mutually + exclusive, but one or other is required + + + + + + + + + + + + + + + + + + memberTypes attribute must be non-empty or there must be + at least one simpleType child + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/schemas/appconfig.xsd b/data/schemas/appconfig.xsd new file mode 100644 index 0000000000..912054741f --- /dev/null +++ b/data/schemas/appconfig.xsd @@ -0,0 +1,1015 @@ + + + + + Copyright (C) 2005 Matthew Ward + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/schemas/manifest.xsd b/data/schemas/manifest.xsd new file mode 100644 index 0000000000..4274cf7b1a --- /dev/null +++ b/data/schemas/manifest.xsd @@ -0,0 +1,198 @@ + + + + + Copyright (C) 2005 Matthew Ward + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/data/schemas/nant-0.84.xsd b/data/schemas/nant-0.84.xsd new file mode 100644 index 0000000000..427fceb339 --- /dev/null +++ b/data/schemas/nant-0.84.xsd @@ -0,0 +1,2137 @@ + + + + + 12/26/2003 13:59:20 +Generated byNAnt.Core.Tasks.NAntSchemaTask+NAntSchemaGenerator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/schemas/nant.xsd b/data/schemas/nant.xsd new file mode 100644 index 0000000000..d7b1c722a4 --- /dev/null +++ b/data/schemas/nant.xsd @@ -0,0 +1,2216 @@ + + + + NAnt schema generated at 02/12/2005 14:51:15 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/data/schemas/readme.txt b/data/schemas/readme.txt new file mode 100644 index 0000000000..bb9c033aab --- /dev/null +++ b/data/schemas/readme.txt @@ -0,0 +1,59 @@ +AddIn.xsd +--------- + +SharpDevelop schema for .addin files. +Created by Ivo Kovacka. +GNU General Public License. + + +appconfig.xsd +------------- + +Schema for app.config and web.config files. +Created by Matt Ward +GNU General Public License. + +manifest.xsd +------------- + +Schema for .manifest files. +Created by Matt Ward +GNU General Public License. + + +NAnt-0.84.xsd +------------- + +http://nant.sourceforge.net/ +GNU General Public License. + + +NAnt.xsd +-------- + +NAnt 0.85 RC 2 schema. +http://nant.sourceforge.net/release/0.85-rc2/nant.xsd +GNU General Public License. + + +Wix.xsd +------- + +http://sourceforge.net/projects/wix/ +Common Public License 1.0 (http://opensource.org/licenses/cpl.php) + + +XMLSchema.xsd +------------- + +W3C Xml Schema. +http://www.w3.org/2001/XMLSchema.xsd +W3C Software License (http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231) - A copy of this license can be found in W3C-License.html + +xslt.xsd +-------- + +Schema for xslt files. +Created by Matt Ward +GNU General Public License. + diff --git a/data/schemas/wix.xsd b/data/schemas/wix.xsd new file mode 100644 index 0000000000..21c5d66959 --- /dev/null +++ b/data/schemas/wix.xsd @@ -0,0 +1,6535 @@ + + + + + Copyright (c) Microsoft Corporation. All rights reserved. + + The use and distribution terms for this software are covered by the + Common Public License 1.0 (http://opensource.org/licenses/cpl.php) + which can be found in the file CPL.TXT at the root of this distribution. + By using this software in any fashion, you are agreeing to be bound by + the terms of this license. + + You must not remove this notice, or any other, from this software. + + Schema for describing Windows Installer database files (.msi/.msm/.pcp). + + + + + + This is the top-level container element for every wxs file. Amongst the possible children, + the Product, Module, and PatchCreation elements are analogous to the main function in a C program. + There can only be one of these present when linking occurs. Product 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 Product, Module, or PatchCreation. The + Fragment can either be completely included or excluded during linking. + + + + + + + + + + + + + + + + Required version of the WiX toolset to compile this input file. + + + + + + + + + The Product element is analogous to the main function in a C program. When linking, only one Product section + can be given to the linker to produce a successful result. Using this element creates an msi file. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + The product code GUID for the product. + + + + + The codepage for the resulting MSI. + + + + + The decimal language ID (LCID) for the product. + + + + + The manufacturer of the product. + + + + + The descriptive name of the product. + + + + + The upgrade code GUID for the product. + + + + + The product's version string. + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + The name of the merge module (not the file name). + + + + + The codepage of the merge module. + + + + + The product code GUID of the merge module. + + + + + The decimal language ID (LCID) of the merge module. + + + + + The product version string of the merge module. + + + + + + + + Declares a dependency on another merge module. + + + + Identifier of the merge module required by the merge module. + + + Numeric language ID of the merge module in RequiredID. + + + Version of the merge module in RequiredID. + + + + + + + Declares a merge module with which this merge module is incompatible. + + + + Identifier of the merge module that is incompatible. + + + 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. + + + Numeric language ID of the merge module in ExcludedID. The specified language will be excluded. Only one of ExcludeExceptLanguage and ExcludeLanguage may be specified. + + + 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. + + + 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. + + + + + + + Defines the configurable attributes of merge module. + + + + Defines the name of the configurable item. + + + Specifies the format of the data being changed. + + + + + + + + + + + Specifies the type of the data being changed. + + + Specifies a semantic context for the requested data. + + + Specifies a default value for the item in this record if the merge tool declines to provide a value. + + + Does not merge rule according to rules in MSI SDK. + + + If yes, null is not a valid entry. + + + Display name for authoring. + + + Description for authoring. + + + Location of chm file for authoring. + + + Keyword into chm file for authoring. + + + + + + + Specifies the configurable fields of a module database and provides a template for the configuration of each field. + + + + Specifies the name of the table being modified in the module database. + + + Specifies the primary keys of the target row in the table named in the Table column. If multiple keys, separated by semicolons. + + + Specifies the target column in the row named in the Row column. + + + Provides a formatting template for the data being substituted into the target field specified by Table, Row, and Column. + + + + + + + + + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + + + Optional identifier for a Fragment. Should only be used if you plan to refer to this Fragment + via a FragmentRef element elsewhere. + + + + + + + + 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. + + + + + + + + + + + + + + + + Guid for this patch. + + + Output patch for patchwiz. + + + Changing files should be included in their entirety. + + + Used to locate the .msp file for the patch if the cached copy is unavailable. + + + ProductCode property may differ between UpgradedImages table and TargetImages table. + + + True if ProductVersion property may differ by a major version. + + + Whether patchwiz should clean the temp folder when finished. + + + Symbol flags. + + + + + + + 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. + + + + + Product full name or description + + + + + List of platforms supported in package + + + + + List of language IDs supported in package + + + + + Vendor releasing the package + + + + + Optional keywords for browsing + + + + + Optional comments for browsing + + + + + Codepage for summary info strings only + + + + + Short filenames on source + + + + + Compressed files on source + + + + + Source is an admin image + + + + + + + + Properties about the patch to be placed in the PatchMetadata table. + + + + + A custom property that extends the standard set. + + + + + + Category of updates. + + + + + + + + + + + + + + + Whether this is an uninstallable patch. + + + + + Name of the manufacturer. + + + + + Name of the application or target product suite. + + + + + A URL that provides information specific to this patch. In Add/Remove Programs from XP SP2 on. + + + + + Creation time of the .msp file in the form mm:dd:yy:HH:MM (month: day : year : hour : minute). + + + + + A title for the patch that is suitable for public display. In Add/Remove Programs from XP SP2 on. + + + + + Description of the patch. + + + + + + + A custom property for the PatchMetadata table. + + + + The name of the company. + + + + + The name of the metadata property. + + + + + Value of the metadata property. + + + + + + + A patch that is deprecated by this patch. + + + + Patch GUID to be unregistered if it exists on the machine targeted by this patch. + + + + + + + A product code for a product that may receive this patch. (Or '*' for all products.) + + + + Product code for a product that can receive this patch. + + + + + + + A property for this patch database. + + + + Name of the patch creation property. + + + + + Value of the patch creation property. + + + + + + + Sequence information for this patch database. Sequence information is generated automatically in most cases, and rarely needs to be set explicitly. + + + + Identifier which indicates one of the sequence families to which this patch belongs. + + + + + Used to determine the product code filtering for the patch family. + + + + + 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. + + + + + Non-NULL value indicates that this patch supersedes earlier patches in this family. See documentation for Attributes column of MsiPatchSequence table in MSI SDK. + + + + + + + Group of one or more upgraded images of a product. + + + + + + + + + + + Identifier for the family. + + + Entered into the Source field of the new Media table entry of the upgraded image. + + + Entered into the DiskId field of the new Media table record. + + + Sequence number for the starting file. + + + Value to display in the "[1]" of the DiskPrompt Property. Using this attribute will require you to define a DiskPrompt Property. + + + Entered into the VolumeLabel field of the new Media table record. + + + + + + Contains information about the upgraded images of the product. + + + + + + + + + + + Identifier to connect target images with upgraded image. + + + Full path to location of msi file for upgraded image. + + + Modified copy of the upgraded installation database that contains additional authoring specific to patching. + + + + + + Contains information about the target images of the product. + + + + + + + + Identifier for the target image. + + + Full path to the location of the msi file for the target image. + + + Relative order of the target image. + + + Product checking to avoid applying irrelevant transforms. + + + Files missing from the target image are ignored by the installer. + + + + + + Information about specific files in a target image. + + + + + + + + + + + Foreign key into the File table. + + + + + + Specifies part of a file that is to be ignored during patching. + + + Offset of the start of the range. + + + Length of the range. + + + + + + Specifies part of a file that cannot be overwritten during patching. + + + Offset of the start of the range. + + + Length of the range. + + + + + + Specifies a file to be protected. + + + + + + + Foreign key into the File table. + + + + + + Contains information about specific files that are not part of a regular target image. + + + + + + + + + + + Foreign key into the File table. + + + Full path of the external file. + + + Specifies the order of the external files to use when creating the patch. + + + + + + Specifies files to either ignore or to specify optional data about a file. + + + + + + + Foreign key into the File table. + + + If yes, the file is ignored during patching, and the next two attributes are ignored. + + + Specifies whether patching this file is vital. + + + Whether the whole file should be installed, rather than creating a binary patch. + + + + + + A path to symbols. + + + The path. + + + + + + + + + + + Reference to a Fragment. This will force the entire referenced Fragment's contents + to be included in the installer database. + + + + + The identifier of the Fragment to reference. + + + + + + + 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. + + + + + Package code GUID for SKU. + + + + + Set to 'yes' if the source is an admin image. + + + + + Optional comments for browsing. + + + + + Set to 'yes' to have compressed files in the source. + + + + + The product full name or description. + + + + + The minimum installer version (major*100 + minor). + + + + + Optional keywords for browsing. + + + + + The list of language IDs (LCIDs) supported in the package. + + + + + The vendor releasing the package. + + + + + The list of platforms supported in the package. + + + + + Set to 'yes' to have short filenames in the source. + + + + + The codepage for summary info strings only. + + + + + + + + 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. + + + + Name of the attribute associated with the value specified in the Value column. + + + Value associated with the name specified in the Name column. + + + + + + Adds a digital certificate + + + + Element value can be hex-encoded certificate value + + + + path to certificate file + + + + + + + + + Adds a digital signature + + + Element value can be hex-encoded hash value + + + + + + path to signature's hash file + + + + + + + Adds a system file protection update catalog file + + + Element value can be hex-encoded hash value + + + + Only specify File's element text (primary key) + + + + + filename for catalog file when installed + + + used to define dependency outside of the package + + + path to catalog file in binary + + + + + + + Adds or removes .ini file entries. + + + + Identifier for ini file. + + + Localizable name of the .ini file. + + + 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. + + + The localizable .ini file section. + + + The localizable .ini file key within the section. + + + The localizable value to be written. + + + The type of modification to be made. + + + + Creates or updates a .ini entry. + + + Creates a new entry or appends a new comma-separated value to an existing entry. + + + Creates a .ini entry only if the entry does no already exist. + + + Deletes a .ini entry. + + + Deletes a tag from a .ini entry. + + + + + + + + + ODBCDataSource for a Component + + + + Translates into ODBCSourceAttributes + + + + + Identifier of the data source. + + + Name for the data source. + + + Required if not found as child of ODBCDriver element + + + Scope for which the data source should be registered. + + + + + + + + + Set 'yes' to force this file to be key path for parent Component + + + + + + ODBCDriver for a Component + + + + Translates into ODBCSourceAttributes + + + + + + Identifier for the driver. + + + Name for the driver. + + + Required if not found as child of File element + + + Required if not found as child of File element or different from File attribute above + + + + + + ODBCTranslator for a Component + + + Identifier for the translator. + + + Name for the translator. + + + Required if not found as child of File element + + + Required if not found as child of File element or different from File attribute above + + + + + + + + + + + + + + + Searches for file and assigns to fullpath value of parent Property + + + + Specify the Id when you want to find the path to a file. Leave the Id absent if you want to find the parent directory of a file. + + + The name of the file being searched for. + + + The minimum size of the file. + + + The maximum size of the file. + + + The minimum version of the file. + + + The maximum version of the file. + + + The minimum modification date and time of the file. Formatted as two packed 16-bit words. High order word specifies date in MS-DOS date format, low order word specifies time in MS-DOS time format. + + + The maximum modification date and time of the file. Formatted as two packed 16-bit words. High order word specifies date in MS-DOS date format, low order word specifies time in MS-DOS time format. + + + The languages supported by the file. + + + + + + + + + + References an existing FileSearch element. + + + + Specify the Id to the FileSearch to reference. + + + + + + + + + + + + Searches for directory and assigns to value of parent Property. + + + + + + + + + + + External key into Signature table. If not in Signature table, search is for a directory defined with DirectorySearch elements. + + + Path on the user's system. Either absolute, or relative to containing directories. + + + Depth below the path that the installer searches for the file or directory specified by the search. + + + + + + + + + + + + References an existing DirectorySearch element. + + + + + + + + + + + Id of the search being referred to. + + + Path on the user's system. Either absolute, or relative to containing directories. + + + + + + + + + + + Searches for file or directory and assigns to value of parent Property. + + + + + + + + + + + + The component ID of the component whose key path is to be used for the search. + + + Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. + + + + + + + + + + + + + + + + + Searches for file, directory or registry key and assigns to value of parent Property + + + + + + + + + + + External key into the Signature table. + + + The .ini file name. + + + The section name within the .ini file. + + + The key value within the section. + + + The field in the .ini line. If field is Null or 0, the entire line is read. + + + Must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element. + + + + A directory location. + + + A file location. + + + A registry location. + + + + + + + + + + + + + + Searches for file, directory or registry key and assigns to value of parent Property + + + + + + + + + + + Signature to be used for the file, directory or registry key being search for. + + + Root key for the registry value. + + + + + + + + + + + Key for the registry value. + + + Registry value name. + + + must be file if last child is FileSearch element and must be directory if last child is DirectorySearch element + + + + + + + + + + Instructs the search to look in the 64-bit registry when the value is 'yes'. Default is 'no' and search looks in the 32-bit registry. + + + + + + + + + + References an existing RegistrySearch element. + + + + Specify the Id of the RegistrySearch to reference. + + + + + + Sets the parent of a nested DirectorySearch element to CCP_DRIVE. + + + + + + + + + + + + + + Adds a row to the CCPSearch table. + + + + + Starts searches from the CCP_DRIVE. + + + + + + + + + + + + + + + + Property value for a Product or Module. + + + + If Property is determined by an AppSearch + + Starts searches from the CCP_DRIVE. + + + + + + + + + + + + Unique identifier for Property. + + + Sets a default value for the property. The value will be overwritten if the Property is used for a search. + + + Adds a row to the CCPSearch table. This attribute is only valid when this Property contains a search element. + + + Denotes that the Property is saved during admininistrative installation. See the AdminProperties Property for more information. + + + Denotes that the Property can be passed to the server side when doing a managed installation with elevated privileges. See the SecureCustomProperties Property for more information. + + + Denotes that the Property is not logged during installation. See the MsiHiddenProperties Property for more information. + + + + + + + + + + Reference to a Property value. + + + + Identifier of Property to reference. + + + + + + Shortcut, default target is parent File, CreateFolder, or Component's Directory + + + + + + + Unique identifier for the shortcut. This value will serve as the primary key for the row. + + + Identifier reference to Directory element where shortcut is to be created. + + + Localizable short name for the shortcut. Must be an 8.3 file name. + + + Localizable long name for shortcut if a name longer than 8.3 format is desired. + + + The target for a non-Advertised shortcut. This attribute is not valid for Advertised shortcuts. + The value will be defaulted to the parent File when nested under a File element. If you specify this value then use a formatted file + identifier, for example: [!TargetFileId]. + + + The localizable description for the shortcut. + + + 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. + + + 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. + + + 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" + + + Identifier reference to Icon element. + + + + + + + + + + + + Directory identifier (or Property identifier that resolves to a directory) that resolves + to the path of the working directory for the shortcut. + + + 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. + + + + + + + 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. + + + No Id attribute, table and key taken from parent element + + + + + + + + + + + + + + + + + + + + + + + + + + + + + For a directory, the right to create a file in the directory. Only valid under a 'CreateFolder' parent. + + + For a directory, the right to create a subdirectory. Only valid under a 'CreateFolder' parent. + + + 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. + + + 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. + + + + + + + + + + + + + + + + + + + + + + + + + + + specifying this will fail to grant read access + + + + Required to call the QueryServiceConfig and QueryServiceConfig2 functions to query the service configuration. Only valid under a 'ServiceInstall' parent. + + + Required to call the ChangeServiceConfig or ChangeServiceConfig2 function to change the service configuration. Only valid under a 'ServiceInstall' parent. + + + Required to call the QueryServiceStatus function to ask the service control manager about the status of the service. Only valid under a 'ServiceInstall' parent. + + + Required to call the EnumDependentServices function to enumerate all the services dependent on the service. Only valid under a 'ServiceInstall' parent. + + + Required to call the StartService function to start the service. Only valid under a 'ServiceInstall' parent. + + + Required to call the ControlService function to stop the service. Only valid under a 'ServiceInstall' parent. + + + Required to call the ControlService function to pause or continue the service. Only valid under a 'ServiceInstall' parent. + + + Required to call the ControlService function to ask the service to report its status immediately. Only valid under a 'ServiceInstall' parent. + + + Required to call the ControlService function to specify a user-defined control code. Only valid under a 'ServiceInstall' parent. + + + + + + + + + + + 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. + + + + + Primary key used to identify this particular entry. + + + + 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. + + + + + This attribute cannot be specified if the element is nested under a File element or the FileId attribute is specified. This + attribute is deprecated; use SourceDirectory or SourceProperty instead. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + This attribute is deprecated; use DestinationDirectory or DestinationProperty instead. + + + + + 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. + + + + + 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. + + + + + 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 the destination name of the file needs to be longer than 8.3 format, then this attribute should be specified + with the long file name (in addition to the Name attribute which is always required for target systems that might + not support long file names). + + + + + 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. + + + + + + + + Patch information for parent File element + + + + may be defaulted if not in cabinet if build tools supply sequence + + + may be defaulted if build tools supply actual size + + + stream in Binary table + + + + + + + + + File specification for File table, must be child node of Component. + + + + + + to DuplicateFile table + + + Target is preset to this file + + + + + + + + to Patch table + + + + + + + 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. + + + + + File name of the file in 8.3 format, required for backwards compatibility. + + + + Long file name; set this attribute if preferred name is not in 8.3 format. + + + Set yes to force this File to be key path for parent Component. + + + + + Set to yes in order to have the file's read-only attribute set when it is installed on the target machine. + + + + + Set to yes in order to have the file's hidden attribute set when it is installed on the target machine. + + + + + Set to yes in order to have the file's system attribute set when it is installed on the target machine. + + + + + 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. + + + + + 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. + + + + + This attribute must only be set by a patch and if the file is being added by the patch. + + + + + Sets the file's source type compression. A setting of "yes" or "no" will override the setting in the Word Count Summary Property. + + + + generates BindImage table row, value my be empty string + + + generates SelfReg table row + + + generates entries in Font table with no FontTitle + + + generates entries in Font table with the FontTitle + + + 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. + + + 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. + + + 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. + + + + Specifies if this File is a Win32 Assembly or .NET Assembly; default is neither. The File must also be the KeyPath of the Component. + + + + + + + + + + Specifies the File that contains the manifest for this Assembly. The File must also be the KeyPath of the Component. The Value of this attribute should not be the KeyPath of any Component. + + + Specifies the File where this Assembly will be privatized. If this attribute is absent, the Assembly will be installed to the Global Assembly Cache. + + + Specifies the architecture for this assembly. This attribute should only be used on .NET Assemblies for the CLR 2.0. + + + + + + + + + + + + Specifies the Media this File should be sourced on. This attribute must be set on this File element or its parent Component. + + + Specifies the path to the File in the build process. This attribute must be set if no source information can be gathered from parent directories. + + + + + + + Creates a file share out of the component's directory. + + + + + ACL permission + + + + Name of the file share. + + + Description of the file share. + + + + + + + + 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. + + + + + + + + This element allows you to add or remove registry keys (depending upon the value of the action attribute). Please + note that for removal, there are 4 options: you can remove a particular registry name, an entire registry key when + the parent component is installed, an entire registry key when the parent component is uninstalled, or create a key + when the parent component is installed, then remove it when the parent component is uninstalled. + + + + + + + + + + + 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. + + + + + This is the action that will be taken for this registry key. Value of 'append' will append the specified value(s) to + a multiString registry key. Value of 'createKey' will create the key, if absent, when the parent component is installed. + Value of 'createKeyAndRemoveKeyOnUninstall' will create 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. Value of 'prepend' will prepend + the specified value(s) to a multiString registry key. Value + of 'remove' will remove a registry name when the parent component in installed. Value of 'removeKey' is deprecated; please + use 'removeKeyOnInstall' to match the previous behavior. Value of 'removeKeyOnInstall' will remove a key with all its + values and subkeys when the parent component is installed. Value of 'removeKeyOnUninstall' will remove a key with all its + values and subkeys when the parent component is uninstalled. Value of 'write' will write a registry key. + + + + + + + + + + + + + + + + + The localizable key for the registry 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. + + + + + The localizable registry value name. 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. + + + + + The predefined root key for the registry value. If the attribute's value is 'HKMU', a per-user installation + will write the value under HKCU, a per-machine installation will write the value under HKLM. Note that it is + recommended that registry entries written to the HKCU hive set the KeyPath attribute to 'yes'. This ensures + that the installer writes the necessary registry entries when there are multiple users on the same computer. + + + + + + + + + + + + + + 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. Please note that setting the attribute's value to + 'multiString' will only result in a multiString value if there is more than one registry value or the Action + attribute's value is 'append' or 'prepend'. Otherwise a string registry value will be created. This attribute + should only be set when the value of the Action attribute does not include the word 'remove'. + + + + + + + + + + + + + + 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'. + + + + + + + + + + + + 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. + + + + + Primary key used to identify this particular entry. + + + + 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. + + + + + 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. + + + + + 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. + + + + + If the name of the file(s) to be removed need to be longer than 8.3 format, then this attribute should be specified + with the long file name (in addition to the Name attribute which is always required for target systems that might + not support long file names). 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. + + + + + This value determines the time at which the file(s) may be removed. Value of "install" will remove only when the + parent component is being installed (msiInstallStateLocal or msiInstallStateSource). Value of "uninstall" will remove + only when the parent component is being removed (msiInstallStateAbsent). Value of "both" will remove in either of + the above cases. + + + + + + + + + + + + + + + + + + + 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. + + + + + Primary key used to identify this particular entry. + + + + 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. + + + + + 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. + + + + + This value determines the time at which the folder may be removed. Value of "install" will remove only when the + parent component is being installed (msiInstallStateLocal or msiInstallStateSource). Value of "uninstall" will remove + only when the parent component is being removed (msiInstallStateAbsent). Value of "both" will remove in either of + the above cases. + + + + + + + + + + + + + + + + + + Create folder as part of parent Component. + + + + + Non-advertised shortcut to this folder, Shortcut Target is preset to the folder + + + ACL permission + + + + Identifier of Directory to create. Defaults to Directory of parent Component. + + + + + + Qualified published component for parent Component. + + + + Optional way for defining AppData, generally used for complex CDATA. + + + + A string GUID that represents the category of components being grouped together. + + + 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. + + + 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. + + + Feature that controls the advertisement of the category. Defaults to the primary Feature for the parent Component . + + + + + + MIME content-type for an Extension + + + This is the identifier for the MIME content. It is commonly written in the form of type/format. + + + Class ID for the COM server that is to be associated with the MIME content. + + + If 'yes', become the content type for the parent Extension. The default value is 'no'. + + + + + + + Verb definition for an Extension. When advertised, this element creates a row in the + Verb table. + When not advertised, this element creates the appropriate rows in Registry table. + + + + The verb for the command. + + + The localized text displayed on the context menu. + + + 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. + + + 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. + + + Target file to be executed for the verb. The value should be a formatted Property to refer to the short path to the file, for example: [!TargetFileId]. Only valid for non-Advertised verbs. + + + + + + + Extension for a Component. + + + + MIME and Verbs can be associated with Extensions + + + + + + This is simply the file extension, like "doc" or "xml". Do not include the preceding period. + + + The MIME type that is to be written. + + + Whether this extension is to be advertised. The default is "no". + + + + + + + + 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. + + + + + + + + + + + The GUID that identifes the type library. + + + + Value of 'yes' will create a row in the TypeLib table. + Value of 'no' will create rows in the Registry table. + + + + + 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'. + + + + + The cost associated with the registration of the type library in bytes. This attribute cannot be set if Advertise='no'. + + + + The localizable description of the type library. + + + + Value of 'yes' means the type library exists in a persisted form on disk. This attribute can only be set if Advertise='no'. + + + + The identifier of the Directory element for the help directory. + + + + 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'. + + + + The language of the type library. This must be a non-negative integer. + + + The major version of the type library. The value should be an integer from 0 - 255. + + + The minor version of the type library. The value should be an integer from 0 - 255. + + + + 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'. + + + + + + + + ProgId registration for parent Component. If ProgId has an associated Class, it must be a child of that element + + + + + Version-independent ProgId must be child element of actual ProgId + + + extensions that refer to this ProgId + + + + + + + reference to Icon element + + + + + 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. See the MSDN documentation for more information. + + + + + + + + Application ID containing DCOM information for the associated application GUID. + If this element is nested under a Fragment, Module, or Product element, it must be + advertised. + + + + + When being used in unadvertised mode, the attributes in the AppId element correspond to registry keys + as follows (values that can be specified in authoring are in bold): +
+
Id
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+
+
+
+
ActivateAtStorage
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ ActivateAtStorage="ActivateAtStorage" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ ActivateAtStorage="Y" +
+
+
+
Description
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ @="Description" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ @="My AppId Description" +
+
+
+
DllSurrogate
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ DllSurrogate="DllSurrogate" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ DllSurrogate="C:\surrogate.exe" +
+
+
+
LocalService
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ LocalService="LocalService" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ LocalService="MyServiceName" +
+
+
+
RemoteServerName
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ RemoteServerName="RemoteServerName" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ RemoteServerName="MyRemoteServer" +
+
+
+
RunAsInteractiveUser
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ RunAs="RunAsInteractiveUser" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ RunAs="Interactive User" +
+
+
+
ServiceParameters
+
+
+
In General
+
+ [HKCR\AppID\{Id}]
+ ServiceParameters="ServiceParameters" +
+
Specific Example
+
+ [HKCR\AppID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ ServiceParameters="-param" +
+
+
+
+
+
+
+ + + + + + + + Set this value to 'yes' to configure the client to activate on the same system as persistent storage. + + + + + 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). + + + + + Set this value to the description of the AppId. It can only be specified when the AppId is not being advertised. + + + + + 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. + + + + + Set this value to the AppID GUID that corresponds to the named executable. + + + + + Set this value to the name of a service to allow the object to be installed as a Win32 service. + + + + + 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. + + + + + 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. + + + + + Set this value to the parameters to be passed to a LocalService on invocation. + + + +
+ + + + COM Class registration for parent Component. + + + + When being used in unadvertised mode, the attributes in the Class element correspond to registry keys + as follows (values that can be specified in authoring are in bold): +
+
Id/Context/Server
+
+
+
In General
+
+ [HKCR\CLSID\{Id}\Context1]
+ @="[!Server]"
+ [HKCR\CLSID\{Id}\Context2]
+ @="[!Server]" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]
+ @="[!comserv.dll]"
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
+ @="[!comserv.dll]" +
+
+
+
AppId
+
+
+
In General
+
+ [HKCR\CLSID\{Id}]
+ AppId="{AppId}" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ AppId="{00000000-89AB-0000-0123-000000000000}" +
+
+
+
Argument
+
+
+
In General
+
+ [HKCR\CLSID\{Id}\Context]
+ @="[!Server] Argument" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
+ @="[!comserv.dll] /arg1 /arg2 /arg3"
+
+
+
+
Description
+
+
+
In General
+
+ [HKCR\CLSID\{Id}]
+ @="Description" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
+ @="Description of Example COM Component" +
+
+
+
Handler
+
+
+
In General
+
+ Value "1" specified:
+ [HKCR\CLSID\{Id}\InprocHandler]
+ @="ole.dll"
+ Value "2" specified:
+ [HKCR\CLSID\{Id}\InprocHandler32]
+ @="ole32.dll"
+ Value "3" specified:
+ [HKCR\CLSID\{Id}\InprocHandler]
+ @="ole.dll"
+ [HKCR\CLSID\{Id}\InprocHandler32]
+ @="ole32.dll"
+ Other value specified:
+ [HKCR\CLSID\{Id}\InprocHandler32]
+ @="Handler" +
+
Specific Example (for other value)
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]
+ @="handler.dll" +
+
+
+
Icon/IconIndex
+
This is not currently handled properly.
+
Insertable
+
+
+
In General
+
+ Value "no" specified:
+ [HKCR\CLSID\{Id}\NotInsertable]
+ Value "yes" specified:
+ [HKCR\CLSID\{Id}\Insertable] +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable] +
+
+
+
Programmable
+
+
+
In General
+
+ Value "yes" specified:
+ [HKCR\CLSID\{Id}\Programmable] +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable] +
+
+
+
RelativePath
+
Unsupported. Please contribute this back to WiX if you know.
+
SafeForInitializing
+
+
+
In General
+
+ Value "yes" specified:
+ [HKCR\CLSID\{Id}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}] +
+
+
+
SafeForScripting
+
+
+
In General
+
+ Value "yes" specified:
+ [HKCR\CLSID\{Id}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}] +
+
+
+
ThreadingModel
+
+
+
In General
+
+ [HKCR\CLSID\{Id}\Context]
+ ThreadingModel="ThreadingModel" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
+ ThreadingModel="Apartment" +
+
+
+
TypeLibId (from parent TypeLib/@Id)
+
+
+
In General
+
+ [HKCR\CLSID\{Id}\TypeLib]
+ @="{TypeLibId}" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]
+ @="{11111111-89AB-1111-0123-111111111111}" +
+
+
+
Version
+
+
+
In General
+
+ [HKCR\CLSID\{Id}\Version]
+ @="Version" +
+
Specific Example
+
+ [HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]
+ @="1.0.0.0" +
+
+
+
+
+
+
+ + + + A ProgId associated with Class must be a child element of the Class element + + + + These Interfaces will be registered with the parent Class and TypeLib (if present). + + + + + The Class identifier (CLSID) of a COM server. + + + The server context for this server. + + + + + + Localized description associated with the Class ID and Program ID. + + + + 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 Product element. To associate an AppId with a non-advertised + class, nest the class within a parent AppId element. + + + + + 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". + + + + Icon index into the icon file. + + + + 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). + + + + + 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. + + + + + 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. + + + + + 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). + + + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + + + + + + + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + May only be specified if the value of the Advertise attribute is "no". 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. + + + + + May only be specified if the value of the Advertise attribute is "no". + + + + + May only be specified if the value of the Advertise attribute is "no". + + + +
+ + + + COM Interface registration for parent Typelib. + + + + GUID identifier for COM Interface. + + + Name for COM Interface. + + + GUID CLSID for proxy stub to COM Interface. + + + GUID CLSID for 32-bit proxy stub to COM Interface. + + + Number of methods implemented on COM Interface. + + + Determines whether a Typelib version entry should be created with the other COM Interface registry keys. Default is 'yes'. + + + + + + FileType data for class Id registration. + + + Offset into file. If positive, offset is from the beginning; if negative, offset is from the end. + + + Hex value that is AND'd against the bytes in the file at Offset. + + + 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. + + + + + + Service or group of services that are dependencies for services in ServiceInstall + + + + + + + + + Service configuration information for failure actions. + + +
+
Nesting a ServiceConfig element under a ServiceInstall element will result in the service being installed to be configured.
+
Nesting a ServiceConfig element under a component element will result in an already installed service to be configured. If the service does not exist prior to the install of the MSI package, the install will fail.
+
+
+
+
+ + + Required if not under a ServiceInstall element. + + + Action to take on the first failure of the service. + + + + + + + + + + + Action to take on the second failure of the service. + + + + + + + + + + + Action to take on the third failure of the service. + + + + + + + + + + + Number of days after which to reset the failure count to zero if there are no failures. + + + If any of the three *ActionType attributes is "restart", this specifies the number of seconds to wait before doing so. + + + If any of the three *ActionType attributes is "runCommand", this specifies the command to run when doing so. + + + If any of the three *ActionType attributes is "reboot", this specifies the message to broadcast to server users before doing so. + + +
+ + + Adds and removes services for parent Component. + + + + Permissions for this service. + + + Service Config: failure actions for service + + + ordered list of dependencies when installing services + + + + Unique identifier for this service. + + + This column is the string that gives the service name to install. + + + This column is the localizable string that user interface programs use to identify the service. + + + The Windows Installer does not currently support kernelDriver or systemDriver + + + + + + + + + + + Whether or not the service interacts with the desktop. + + + Determines when the service should be started. The Windows Installer does not support boot or system. + + + + + + + + + + + + Determines what action should be taken on an error. + + + + + + + + + + The overall install should fail if this service fails to install. + + + The load ordering group that this service should be a part of. + + + The acount under which to start the service. Valid only when ServiceType is ownProcess. + + + The password for the account. Valid only when the account has a password. + + + Contains any command line arguments or properties required to run the service. + + + Sets the description of the service. + + + Determines whether the existing service description will be ignored. If 'yes', the service description will be null, even if the Description attribute is set. + + + + + + Argument used in ServiceControl parent + + + + + 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. + + + + + + Ordered list of arguments used when modifying services. + + + + + + Name of the service. + + + Specifies whether the service should be started on install, uninstall or both. + + + + + + + + + + Specifies whether the service should be stopped on install, uninstall or both. + + + + + + + + + + Specifies whether the service should be removed on install, uninstall or both. + + + + + + + + + + Specifies whether or not to wait for the service to complete before continuing. + + + + + + Environment variables added or removed for parent Component. + + + Unique identifier for environment entry. + + + Name of the environment variable. + + + Value to set into the environment variable. + + + Optional attribute to change the separator used between values. By default a semi-colon is used. + + + Specfies whether the environmental variable should be created, set or removed when the parent component is installed. + + + + + + + + + + If 'all', this value is the entire environmental variable. If 'first', this value is prefixed. If 'last', this value is appended. + + + + + + + + + + Specifies that the environment variable should not be removed on uninstall. + + + + 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. + + + + + + + + + + + Conditions for various things. The condition is specified in the inner text of the element. 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 Product element, the condition becomes a LaunchCondition entry. + + + + Used only under Control elements and is required. Allows specific actions to be applied to a control based + on the result of this condition. + + + + + + + + + + + + + + Used only under Feature elements and is required. Allows modifying the level of a Feature based on the + result of this condition. + + + + + Used only under Fragment or Product elements and is required. Set the value to the text to display when the + condition fails and the installation must be terminated. + + + + + + + + + Shared Component to be privately replicated in folder of parent Component + + + Shared Component for this application Component + + + + + + Disk cost to reserve in a folder for running locally and/or from source. + + + + Defaults to Directory of parent Component. + + + The number of bytes of disk space to reserve if the component is installed to run locally. + + + The number of bytes of disk space to reserve if the component is installed to run from source. + + + + + + + Component for parent Directory + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + elements at this point in the schema. + + + + + + Component identifier; this is the primary key for identifying components. + + + + + 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. + + + + + + + This attribute must be set either on a Component element or all of its children File + elements. The value of this attribute should correspond to the Id attribute of a + Media element authored elsewhere. By creating this connection between a component (or + particular files), you set the packaging options to the values specified in the Media + element (values such as compression level, cab embedding, etc...). + + + + + + + Specifies that the DIFxApp CustomActions should force the installation of a new Plug and Play driver + on a device, even if the currently installed driver on the device is a better match than the new driver. + Specifying 'no' is an excellent way to ensure the DIFxApp CustomActions recognize the Component contains + a driver for installation. The default is null which means the Component does not install a driver via + DIFxApp CustomActions. See http://www.microsoft.com/whdc/driver/install/difxtools.mspx + for more information. + + + + + + + Specifies that the DIFxApp CustomActions should prompt the user to connect the Plug and Play + device if it is not connected. The default is 'yes'. + + + + + + + Specifies that the DIFxApp CustomActions should add an entry in the Add/Remove Programs Control + Panel applet. The default is 'yes'. + + + + + + + Specifies an optional installation sequence number. DIFxApp CustomActions install the driver packages in + an installation package in the order of increasing sequence numbers. The same sequence number can be used + for more than one driver; however, the order in which packages with the same sequence number are actually + installed cannot be determined. + + + + + + + String GUID (without the '{' and '}' braces) that uniquely identifies a component's language, + version, and platform. If this attribute is present, the GUID will become the identifier used + by the Windows Installer to track this component on the user's machine. If this value is not + specified, then the component cannot be removed or repaired by the installer (it is essentially + a permanent component). Therefore, a GUID should always be specified for a component which + contains any resources that may need to be patched in the future. + + + + + + + If this attribute's value is set to 'yes', then the Directory of this Component is used + as the KeyPath. To set a Registry key or File as the KeyPath of a component, set the + KeyPath attribute to 'yes' on one of those child elements. + + + + + + + This attribute is ignored when the Component is a child of Feature. Set the value to 'local' to + prevent the component from running from the source or the network (this is the default behavior + if this attribute is not set). Set the value to 'source' to + enforce that the component can only be run from the source (it cannot be run from the user's + computer). Set the value to 'either' to allow the component to run from source or locally. + + + + + + + + + + + + + + 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. + + + + + + + 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. + + + + + + + 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. + + + + + + + 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. + + + + + + + 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 bit + is not set, the component is registered as a 32-bit component. If this is a 64-bit + component replacing a 32-bit component, set this bit and assign a new GUID in the Guid attribute. + + + + + + Extensibility point in the WiX XML Schema. Schema extensions can register additional + attributes at this point in the schema. + + + + + + + + Create a reference to a Feature element in another Fragment. + + + + + + + The identifier of the Component element to reference. + + + + 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. + + + + + + + + + + + Merge directive to bring in a Merge Module to be redirected to parent Directory + + + + + Data to use as input to a configurable merge module. + + + + The unique identifier for the Merge element in the source code. Referenced by the MergeRef/@Id. + + + Specifies the decimal LCID for the language to merge the Module in as. + + + This attribute has been deprecated and should not be used. It actually never provided any 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...). + + + + + + + + + + + + + Merge reference to connect a Merge Module to parent Feature + + + + The unique identifier for the Merge element to be referenced. + + + This attribute has been deprecated and should not be used. It actually never provided any value. + + + Specifies whether the feature containing this MergeRef is the primary feature for advertising the merge module's components. + + + + + + Data to use as input to a configurable merge module. + + + Key into the ModuleConfiguration table. + + + Value to be passed to configurable merge module. + + + + + + + Directory layout for the product. Also specifies the mappings between source and target directories. + + + + + + + + + + + + + This value is the unique identifier of the directory entry. + + + Set this value to the non-8.3 name for the directory. This attribute cannot be specified unless the Name attribute is used to set the short name for this directory. + + + Set this value to the non-8.3 name of the directory on the source media for systems supporting long names. This attribute cannot be specified unless the SourceName attribute sets the short source name for this directory. + + + The 8.3 name of the directory. Do not specify this attribute (or the LongName attribute) if this directory represents the same directory as the parent (see the Windows Installer SDK's Directory table topic for more information about the "." operator). + + + The 8.3 name of the directory on the source media. If this attribute is note specified, the Windows Installer will default to the Name attribute. + + + Used to set the file system source for this directory's child elements. + + + + + + + Create a reference to a Directory element in another Fragment. + + + + + + + + + + + + + The identifier of the Directory element to reference. + + + Used to set the file system source for this directory ref's child elements. + + + + + + + + + + Specifies the lower bound on the range of product versions to be detected by FindRelatedProducts. + + + Specifies the upper boundary of the range of product versions detected by FindRelatedProducts. + + + 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. + + + 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. + + + When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. The property specified in this field must be a public property and the package author must add the property to the SecureCustomProperties Property. Each UpgradeVersion must have a unique Property value. After FindRelatedProducts the value of this property is a list product codes, separated by semicolons (;), detected on the system. + + + Set to "yes" to migrate feature states from upgraded products by enabling the logic in the MigrateFeatureStates action. + + + Set to "yes" to detect products and applications but do not install. + + + Set to "yes" to continue installation upon failure to remove a product or application. + + + Set to "yes" to make the range of versions detected include the value specified in Minimum. This attribute is "yes" by default. + + + Set to "yes" to make the range of versions detected include the value specified in Maximum. + + + Set to "yes" to detect all languages, excluding the languages listed in the Language attribute. + + + + + + + + Upgrade info for a particular UpgradeCode. + + + + + Property table entry for the ActionProperty column associated with this Upgrade row + + + + + This value specifies the upgrade code for the products that are to be detected by the FindRelatedProducts action. + + + + + + + + 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. + + + + + + + + + + + + + + + + Unique identifier of the feature. + + + + This attribute determines if a user will have the option to set a feature to absent in the user interface. + Value of 'allow' will allow the user interface to display an option to change the feature state to Absent. + Value of 'disallow' will prevent 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. + + + + + + + + + + + This attribute determins the possible advertise states for this feature. + Value of 'no' will prevent this feature from being advertised by settting the msidbFeatureAttributesDisallowAdvertise attribute. + Value of 'system' will prevent advertising for this feature if the operating system shell does not support Windows Installer + descriptors by setting the msidbFeatureAttributesNoUnsupportedAdvertise attribute. + Value of 'yes' will allow the feature to be advertised. + + + + + + + + + + + + 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. + + + + + Longer string of text describing the feature. This localizable string is displayed by the + Text Control of the Selection Dialog. + + + + + Determines the initial display of this feature in the feature tree. + Value of 'collapse' will initially show the feature collapsed. + Value of 'expand' will initially show the feature expanded. + Value of 'hidden' will prevent the feature from displaying in the user interface. + + + + + + + + + + + + This attribute has been deprecated; please use InstallDefault='followParent' instead. + This attribute determines if a feature will follow the installation state of its parent feature. + Value of 'yes' sets the state of the feature the same as the state of the feature's parent by setting the + msidbFeatureAttributesFollowParent attribute. You cannot use this option if the feature is located at + the root of a feature tree. + + + + + 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. + Value of 'followParent' will force the feature to follow the same installation state as its parent feature. + Value of 'local' will favor installing this feature locally by setting the msidbFeatureAttributesFavorLocal attribute. + Value of 'source' will favor running this feature from source by setting the msidbFeatureAttributesFavorSource attribute. + + + + + + + + + + + + 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). + + + + + Short string of text identifying the feature. This string is listed as an item by the + SelectionTree control of the Selection Dialog. + + + + + This attribute determines the default advertise state of the feature. This attribute's value cannot be + 'advertise' 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. + Value of 'advertise' will set the feature to be advertised by setting the msidbFeatureAttributesFavorAdvertise attribute. + Value of 'install' will set the feature to the default non-advertised installation option. + + + + + + + + + + + + + + Create a reference to a Feature element in another Fragment. + + + + + + + + + + + + + The identifier of the Feature element to reference. + + + + + + + PatchPackage found on parent Media element + + + + + Element value is PatchId GUID. + + + + + + + + Media element describes a disk that makes up the source media for the installation. + + + + + + + + Disk identifier for Media table. This number must be equal to or greater than 1. + + + The name of the cabinet if some or all of the files stored on the media are compressed into a cabinet file. If no cabinets are used, this attribute must be blank. + + + + + 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'. + + + + + + + + + + + + + + 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. + + + Instructs the binder to embed the cabinet in the product if 'yes'. This attribute can only be specified in conjunction with the Cabinet attribute. + + + + + 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). + + + + + + + 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. + + + + + + + + + + Use this to Ignore Modularization of particular values. This feature + is intended to be used in very rare situations. Before using this + feature, contact your support alias to verify your use is supported. + + + + + + + + + + + + + + + + + + + + + + + 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 MSDN documentation + + http://msdn.microsoft.com/library/en-us/msi/setup/summary_list_of_all_custom_action_types.asp + for a "Summary List of All Custom Action Types". + + + + + + + The text node is only valid if the Script attribute is specified. In that case, the text node contains the script to embed. + + + + + The identifier of the custom action. + + + + + + + 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. + + + + + + + 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. + + + + + + + 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 + http://msdn.microsoft.com/library/en-us/msi/setup/obtaining_context_information_for_deferred_execution_custom_actions.asp + for more information. + + + + + + + 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. + + + + + Creates a type 39 custom action. Specifies the ProductCode of the nested install to locate. + + + Creates a type 23 custom action. Specifies the Formatted path to the source package for the nested installation. + + + Creates a type 7 custom action. Specifies the name of the substorage to store nested installation package. + + + + + + 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. + + + + + + + This attribute specifies the command line parameters to supply to an externally + run executable. This attribute is typically used with the FileKey attribute for a type 2 custom action, + the BinaryKey attribute for a type 17 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. + + + + + + Set this attribute to indicate that the custom action is written in JScript. The source should be indicated + using one of the target attributes. + + + + + Set this attribute to indicate that the custom action is written in VBScript. The source should be indicated + using one of the target attributes. + + + + + Creates a type 37 or 38 custom action. The text of the element should contain the script to be embedded in the package. + + + + + + + + + + + + This attribute specifies a string value to use in the custom action. + This attribute is typically used with the Property attribute to set the property + as part of a type 51 custom action, with the Directory attribute to set a directory + path in that table in a type 35 custom action, or by itself to create a type 19 error message + custom action. The value can be a literal value or derived from a Property element using the + formatted syntax. + + + + + + Creates a nested install custom action. Specifies the Properties to pass to the nested installation. Use + in conjunction with a PackageProductCode, PackagePath, or PackageSubstorage attribute. + + + + + + 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. + + + + + + + Set this attribute to set the return behavior of the custom action. Value of 'check' is default and + indicates that the custom action will run synchronously and the return code will be checked for success. + Value of 'ignore' indicates that the custom action will run synchronously and the return code will not be + checked. Value of 'asyncNoWait' indicates that the custom action will run asyncronously and execution may + continue after the installer terminates. Value of 'asyncWait' indicates that the custom action will run + asynchronously but the installer will wait for the return code at sequence end. + + + + + + + + + + + + + Set this attribute to indicate the scheduling of the custom action. Value of 'commit' indicates that the + custom action will run after successful completion of the installation script (at the end of the installation). + Value of 'deferred' indicates that the custom action runs in-script (possibly with elevated privileges). Value + of 'firstSequence' indicates that the custom action will only run in the first sequence that runs it. Value of + 'immediate' means that the custom action will occur during normal processing time with user privileges. Value + of 'oncePerProcess' indicates that the custom action will only run in the first sequence that runs it in the + same process. Value of 'rollback' 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. Value of 'secondSequence' + indicates that a custom action should be run a second time if it was previously run in an earlier sequence. + If this attribute is not specified the value will be defaulted to 'immediate'. + + + + + + + + + + + + + + + + + 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. + + + + + Specifies that a custom action targets a 64-bit platform. + + + Deprecated, use the TerminalServerAware attribute instead. + + + + + 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. + + + + + Ensures the installer does not log the CustomActionData for the deferred custom action. + + + + + + + + + + + + + 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 FindRelated Products 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. + + + + + 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. + + + + + + + + + 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. + + + + + + + + + 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. + + + + + + + + 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. + + + + + + + + + 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. + + + + 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. + + + 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. + + + Initiates the execution sequence. The condition for this action may be specified in the element's inner text. + + + 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. + + + + + + + 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. + + + + Ensures the needed amount of space exists in the registry. The condition for this action may be specified in the element's inner text. + + + 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. + + + Manages the unadvertisement of components listed in the PublishComponent table. The condition for this action may be specified in the element's inner text. + + + 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. + + + 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. + + + Stops system services. The condition for this action may be specified in the element's inner text. + + + Stops a service and removes its registration from the system. The condition for this action may be specified in the element's inner text. + + + Removes COM+ applications from the registry. The condition for this action may be specified in the element's inner text. + + + 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. + + + Unregisters type libraries from the system. The condition for this action may be specified in the element's inner text. + + + 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. + + + Removes registration information about installed fonts from the system. The condition for this action may be specified in the element's inner text. + + + 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. + + + 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. + + + 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. + + + Manages the unregistration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. + + + Unregisters MIME-related registry information from the system. The condition for this action may be specified in the element's inner text. + + + 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. + + + 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. + + + Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. + + + Deletes files installed by the DuplicateFiles action. The condition for this action may be specified in the element's inner text. + + + Removes files previously installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. + + + 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. + + + 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. + + + 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. + + + Copies the product database to the administrative installation point. The condition for this action may be specified in the element's inner text. + + + 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. + + + Duplicates files installed by the InstallFiles action. The condition for this action may be specified in the element's inner text. + + + 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. + + + 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. + + + Manages the creation of shortcuts. The condition for this action may be specified in the element's inner text. + + + Manages the registration of COM class information with the system. The condition for this action may be specified in the element's inner text. + + + Manages the registration of extension related information with the system. The condition for this action may be specified in the element's inner text. + + + Manages the registration of OLE ProgId information with the system. The condition for this action may be specified in the element's inner text. + + + Registers MIME-related registry information with the system. The condition for this action may be specified in the element's inner text. + + + Sets up an application's registry information. The condition for this action may be specified in the element's inner text. + + + 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. + + + Modifies the values of environment variables. The condition for this action may be specified in the element's inner text. + + + Registers installed fonts with the system. The condition for this action may be specified in the element's inner text. + + + 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. + + + Registers type libraries with the system. The condition for this action may be specified in the element's inner text. + + + 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. + + + Registers COM+ applications. The condition for this action may be specified in the element's inner text. + + + Registers a service for the system. The condition for this action may be specified in the element's inner text. + + + Starts system services. The condition for this action may be specified in the element's inner text. + + + 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. + + + Registers the product information with the installer. The condition for this action may be specified in the element's inner text. + + + Manages the advertisement of the components from the PublishComponent table. The condition for this action may be specified in the element's inner text. + + + Manages the advertisement of CLR and Win32 assemblies. The condition for this action may be specified in the element's inner text. + + + Writes each feature's state into the system registry. The condition for this action may be specified in the element's inner text. + + + Manages the advertisement of the product information with the system. The condition for this action may be specified in the element's inner text. + + + + + + + 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. + + + + + + + + + + + + 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. + + + + + + + + + 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. + + + + + + + + + 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. + + + + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + 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. + + + + + + + + + Use to sequence a custom action. + + + + + Text node specifies the condition of the action. + + + mutually exclusive with Before, After, and Sequence attributes + + + + + + + + + + + + + + + + + + + + + + + mutually exclusive with Before, After, and Sequence attributes + + + + + + + + + + + + + + + + + + + + + + + + Use to sequence a custom action. + + + + Prompts the user to restart the system at the end of installation. Not fixed sequence. + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + 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. + + + Uses file signatures to search for existing versions of products. + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + Sets the ProductID property to the full product identifier. + + + Initiates the internal installation costing process. + + + Initiates dynamic costing of standard installation actions. + + + Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. + + + Ends the internal installation costing process begun by the CostInitialize action. + + + Used for upgrading or installing over an existing application. + + + Initiates the execution sequence. + + + + + + + + + + + Use to sequence a custom action. + + + Prompts the user to restart the system at the end of installation. Not fixed sequence. + + + Prompts the user for a restart of the system during the installation. Not fixed sequence. + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. Not fixed sequence. + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + 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. + + + Uses file signatures to search for existing versions of products. + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + Uses file signatures to validate that qualifying products are installed on a system before an upgrade installation is performed. + + + Sets the ProductID property to the full product identifier. + + + Initiates the internal installation costing process. + + + Initiates dynamic costing of standard installation actions. + + + Installs a copy of a component (commonly a shared DLL) into a private location for use by a specific application (typically an .exe). + + + Ends the internal installation costing process begun by the CostInitialize action. + + + Checks for existing ODBC drivers and sets the target directory for each new driver to the location of an existing driver. + + + Used for upgrading or installing over an existing application. + + + Verifies that all costed volumes have enough space for the installation. + + + Marks the beginning of a sequence of actions that change the system. + + + Ensures the needed amount of space exists in the registry. + + + Registers and unregisters components, their key paths, and the component clients. + + + Manages the unadvertisement of components listed in the PublishComponent table. + + + Removes selection-state and feature-component mapping information from the registry. + + + Stops system services. + + + Stops a service and removes its registration from the system. + + + Removes COM+ applications from the registry. + + + Unregisters all modules listed in the SelfReg table that are scheduled to be uninstalled. + + + Unregisters type libraries from the system. + + + Removes the data sources, translators, and drivers listed for removal during the installation. + + + Removes registration information about installed fonts from the system. + + + 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. + + + Manages the removal of COM class information from the system registry. + + + Manages the removal of extension-related information from the system registry. + + + Manages the unregistration of OLE ProgId information with the system. + + + Unregisters MIME-related registry information from the system. + + + Removes .ini file information specified for removal in the RemoveIniFile table if the component is set to be installed locally or run from source. + + + Manages the removal of an advertised shortcut whose feature is selected for uninstallation or a nonadvertised shortcut whose component is selected for uninstallation. + + + Modifies the values of environment variables. + + + Deletes files installed by the DuplicateFiles action. + + + Removes files previously installed by the InstallFiles action. + + + Removes any folders linked to components set to be removed or run from source. + + + Creates empty folders for components that are set to be installed. + + + Locates existing files on the system and moves or copies those files to a new location. + + + Copies files specified in the File table from the source directory to the destination directory. + + + Duplicates files installed by the InstallFiles action. + + + Queries the Patch table to determine which patches are to be applied. + + + Binds each executable or DLL that must be bound to the DLLs imported by it. + + + Manages the creation of shortcuts. + + + Manages the registration of COM class information with the system. + + + Manages the registration of extension related information with the system. + + + Manages the registration of OLE ProgId information with the system. + + + Registers MIME-related registry information with the system. + + + Sets up an application's registry information. + + + Writes the .ini file information that the application needs written to its .ini files. + + + Modifies the values of environment variables. + + + Registers installed fonts with the system. + + + Installs the drivers, translators, and data sources in the ODBCDriver table, ODBCTranslator table, and ODBCDataSource table. + + + Registers type libraries with the system. + + + Processes all modules listed in the SelfReg table and registers all installed modules with the system. + + + Registers COM+ applications. + + + Registers a service for the system. + + + Starts system services. + + + Registers the user information with the installer to identify the user of a product. + + + Registers the product information with the installer. + + + Manages the advertisement of the components from the PublishComponent table. + + + Writes each feature's state into the system registry. + + + Manages the advertisement of the product information with the system. + + + Marks the end of a sequence of actions that change the system. + + + Goes through the product codes listed in the ActionProperty column of the Upgrade table and removes the products in sequence. + + + Disables rollback for the remainder of the installation. + + + + Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. + + + Runs a script containing all operations spooled since either the start of the installation or the last InstallExecute action, or InstallExecuteAgain action. + + + + Manages the advertisement of CLR and Win32 assemblies. + + + Manages the unadvertisement of CLR and Win32 assemblies that are being removed. + + + + + + + + + + Use to sequence a custom action. + + + + Initiates the internal installation costing process. + + + Initiates dynamic costing of standard installation actions. + + + Ends the internal installation costing process begun by the CostInitialize action. + + + Initiates the execution sequence. + + + Verifies that all costed volumes have enough space for the installation. + + + Marks the beginning of a sequence of actions that change the system. + + + Copies the product database to the administrative installation point. + + + Copies files specified in the File table from the source directory to the destination directory. + + + Marks the end of a sequence of actions that change the system. + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + + + + + + + + Use to sequence a custom action. + + + Initiates the internal installation costing process. + + + Initiates dynamic costing of standard installation actions. + + + Ends the internal installation costing process begun by the CostInitialize action. + + + Verifies that all costed volumes have enough space for the installation. + + + Marks the beginning of a sequence of actions that change the system. + + + Copies the product database to the administrative installation point. + + + Copies files specified in the File table from the source directory to the destination directory. + + + Marks the end of a sequence of actions that change the system. + + + Queries the LaunchCondition table and evaluates each conditional statement recorded there. + + + Determines the location of the source and sets the SourceDir property if the source has not been resolved yet. + + + + + + + + + + Initiates the internal installation costing process. + + + Ends the internal installation costing process begun by the CostInitialize action. + + + Use to sequence a custom action. The only custom actions that are allowed in the AdvtExecuteSequence are type 19 (0x013) type 35 (0x023) and type 51 (0x033). + + + Verifies that all costed volumes have enough space for the installation. + + + Marks the beginning of a sequence of actions that change the system. + + + Manages the creation of shortcuts. + + + Manages the registration of COM class information with the system. + + + Manages the registration of extension related information with the system. + + + Registers MIME-related registry information with the system. + + + Manages the registration of OLE ProgId information with the system. + + + Manages the advertisement of the components from the PublishComponent table. + + + Writes each feature's state into the system registry. + + + Manages the advertisement of the product information with the system. + + + Marks the end of a sequence of actions that change the system. + + + + Manages the advertisement of CLR and Win32 assemblies. + + + + + + + Binary data used for CustomAction elements and UI controls. + + + The Id cannot by longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. + + + Path to the binary file. + + + + + + Icon used for Shortcut, ProgId, or Class elements (but not UI controls). + + + The Id cannot by longer than 55 characters. In order to prevent errors in cases where the Id is modularized, it should not be longer than 18 characters. + + + Path to the icon file. + + + + + + + + + + + Element value is Message, use CDATA if message contains delimiter characters + + Number of the error for which a message is being provided. See MSI SDK for error definitions. + + + + + + + + + + + Element value is the optional Condition expression + + + must be one of the standard control events' + + + mutually exclusive with 'Event' + + + + + + + + + + Sets attributes for events in the EventMapping table + + + must be one of the standard control events' + + + if not present can only handle enable, disable, hide, unhide events + + + + + + Alternative to Text attributes when CDATA is needed to escape XML delimiters. + + + + + Instructs the text to be imported from a file instead of the element value during the binding process. + + + + + + + + + + + alternative to Text attribute when CDATA is needed to escape XML delimiters + + + ComboBox table with ListItem children + + + ListBox table with ListItem children + + + ListView table with ListItem children + + + Deprecated. Use RadioButtonGroup. Old way to represent RadioButton table with RadioButton children + + + RadioButton table with RadioButton children + + + Property table entry for the Property table column associated with this control + + + Icon referenced in icon column of row + + + child elements affecting operation of this control + + Condition to specify actions for this control based on the outcome of the condition. + + + + + + + + + + + + + + + + + + + + + + + + + + Only for CheckBox control to set Property to a value on check + + + + yes if this control is skipped in the tab sequence + + + yes if this control invoked by the return key + + + yes if this is the control invoked on cancel of dialog + + + + + + + + + + + + + + + + + + + + + only valid for Text Controls + + + only valid for Text Controls + + + only valid for Text Controls + + + only valid for Text Controls + + + only valid for Text Controls + + + only valid for Edit Controls + + + only valid for Edit Controls + + + only valid for ProgressBar Controls + + + only valid for Volume and Directory Controls + + + only valid for Volume and Directory Controls + + + only valid for Volume and Directory Controls + + + only valid for Volume and Directory Controls + + + only valid for Volume and Directory Controls + + + only valid for Volume and Directory Controls + + + only valid for VolumeCostList Controls + + + only valid for Listbox and ComboBox Controls + + + only valid for ComboBox Controls + + + only valid for RadioButton, PushButton, and Icon Controls + + + only valid for RadioButton, PushButton, and Icon Controls + + + + + + + + + + only valid for RadioButton, PushButton, and Icon Controls + + + only valid for RadioButton and PushButton Controls + + + only valid for RadioButton and PushButton Controls + + + only valid for RadioButton and Checkbox Controls + + + only valid for RadioButton Controls + + + + + + Billboard to display during install of a Feature. + + + + Can only have controls of type: Text, Bitmap, Icon, and custom + + + + Unique identifier for the Billboard. + + + Feature whose state determines if the Billboard is shown. + + + + + + Billboard action during which child Billboards are displayed. + + + + Order of Billboard elements determines order of display + + + + Action name that determines when the Billboard should be shown. + + + + + + + + + Control elements belonging to this dialog + + + + + in %, defaults to centered on screen (50) + + + in %, defaults to centered on screen (50) + + + in dialog units + + + in dialog units + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Element value is progress message text for action + + + used to format ActionData messages from action processing + + + + + + + + TextStyle definition + + + + + + 0 to 255 + + + 0 to 255 + + + 0 to 255 + + + + + + + + + + Text and value associated with Property with Control set to listBox,listView,comboBox + + + + Alternative to Text attribute when CDATA is needed to escape XML delimiters. + + + + + Deprecated. Old way to assign a value to the associated control Property + + + Value assigned to the associated control Property. + + + Defaults to ListItem's value + + + Only valid in ListView Properties + + + + + + Set of items for a particular ListBox control tied to an install Property + + + + entry for ListBox table + + + + Property tied to this group + + + + + + + Set of items for a particular ComboBox control tied to an install Property + + + + + entry for ComboBox table + + + + Property tied to this group + + + + + + Set of items for a particular ListView control tied to an install Property + + + + entry for ListView table + + + + Property tied to this group + + + + + + + + + + Text or Icon plus Value that is assigned to the Property of the parent Control (RadioButtonGroup). + + + + + Deprecated. Use the Value attribute instead. + + + Value assigned to the associated control Property when this radio button is selected. + + + + + + + Text displayed with the radio button. This attribute is mutually exclusive with the Icon attribute. + + + Icon displayed with the radio button. This attribute is mutually exclusive with the Text attribute. + + + + + + + + + + Deprecated: use RadioButtonGroup. Set of radio buttons tied to the specified Property + + + + + + Property tied to this group. + + + + + + Set of radio buttons tied to the specified Property + + + + + + Property tied to this group. + + + + + + Text associated with certain controls + + + + Element value is text, may use CDATA if needed to escape XML delimiters + + + + + + + + + Enclosing element to compartmentalize UI specifications + + + + Error text associated with install error + + + ActionText entry associated with an action + + + Billboard table item with child Controls + + + ComboBox table with ListItem children + + + ListBox table with ListItem children + + + ListView table with ListItem children + + + Deprecated: use RadioButtonGroup. RadioButton table with RadioButton children + + + RadioButton table with RadioButton children + + + TextStyle entry for use in control text + + + values for UIText property, not installer Property + + + Dialog specification, called from Sequence + + + + + + + + + + + + + + + + + Defines a custom table for use from a custom action. + + + + Column definition for the custom table. + + + Row definition for the custom table. + + + + Identifier for the custom table. + + + + + + Column definition for a Custom Table + + + Identifier for the column. + + + Whether this column is a primary key. + + + The type of this column. + + + + + + + + + + Width of this column. + + + Whether this column can be left null. + + + Whether this column can be localized. + + + Minimum value for a numeric value, date or version in this column. + + + Maximum value for a numeric value, date or version in this column. + + + Table in which this column is an external key. Can be semicolon delimited. + + + Column in the table in KeyTable attribute. + + + Category of this column. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Semicolon delimited list of permissible values. + + + Description of this column. + + + How this column should be modularized, if at all. + + + + + + Row data for a Custom Table + + + + + + + + + Data item for a row of a Custom Table + + + + Element value is data the data value + + + + + + + + + + + + Use this element to ensure that a table appears in the installer database, even if its empty. + + + + This element is particularly useful for two problems that may occur while merging merge modules: +
    +
  1. + The first likely problem is that in order to properly merge you need to have certain + tables present prior to merging. Using this element is one way to ensure those tables + are present prior to the merging. +
  2. +
  3. + The other common problem is that a merge module has incorrect validation information + about some tables. By ensuring these tables prior to merging, you can avoid this + problem because the correct validation information will go into the installer database + before the merge module has a chance to set it incorrectly. +
  4. +
+
+
+
+ + + The name of the table. + + +
+ + + + + + User for all kinds of things. When it is not nested under a component it is included in the MSI so it can be referenced by other elements such as the User attribute in the AppPool element. When it is nested under a Component element, the User will be created on install and can also be used for reference. + + + + + + + + + + + + + + + + Usually a Property that is passed in on the command-line to keep it more secure. + + + + + Indicates whether the user account should be left behind on uninstall. + + + Indicates if the install should fail if the user already exists. + + + Indicates if the user account properties should be updated if the user already exists. + + + Indicates whether the user must change their password on their first login. + + + + Indicates whether or not to create the user. User creation can be skipped if all that is desired is to join a user to groups. + + + + + + + Used to join a user to a group + + + + + + + + + Group for all kinds of things + + + + + + + + + + + WebDirProperites used by one or more WebSites. Lists properties common to IIS web sites and vroots. Corresponding properties can be viewed through the IIS Manager snap-in. One property entry can be reused by multiple sites or vroots using the Id field as a reference, using WebVirtualDir.DirProperties, WebSite.DirProperties, or WebDir.DirProperties. + + + + + + + + + Sets the Enable Anonymous Access checkbox, which maps anonymous users to a Windows user account. When setting this to 'yes' you should also provide the user account using the AnonymousUser attribute, and determine what setting to use for the IIsControlledPassword attribute. Defaults to 'no.' + + + Reference to the Id attribute on the User element to be used as the anonymous user for the directory. See the User element for more information. + + + Sets whether IIS should control the password used for the Windows account specified in the AnonymousUser attribute. Defaults to 'no.' + + + Sets the Windows Authentication option, which enables integrated Windows authentication to be used on the site. Defaults to 'no.' + + + Sets the Digest Authentication option, which allows using digest authentication with domain user accounts. Defaults to 'no.' + + + Sets the Basic Authentication option, which allows clients to provide credentials in plaintext over the wire. Defaults to 'no.' + + + Sets the Passport Authentication option, which allows clients to provide credentials via a .Net Passport account. Defaults to 'no.' + + + Sets whether visits to this site should be logged. Defaults to 'no.' + + + Sets the Index Resource option, which specifies whether this web directory should be indexed. Defaults to 'no.' + + + The list of default documents to set for this web directory, in comma-delimited format. + + + Sets the option for whether to send detailed ASP errors back to the client on script error. Default is 'no.' + + + Value to set the HttpExpires attribute to for a Web Dir in the metabase. + + + Integer value specifying the cache control maximum age value. + + + Custom HTTP 1.1 cache control directives. + + + Specifies whether IIs will return custom errors for this directory. + + + A value of true indicates that file access requires SSL file permission processing, with or without a client certificate. This corresponds to AccessSSL flag for AccessSSLFlags IIS metabase property. + + + A value of true indicates that file access requires SSL file permission processing with a minimum key size of 128 bits, with or without a client certificate. This corresponds to AccessSSL128 flag for AccessSSLFlags IIS metabase property. + + + This corresponds to AccessSSLMapCert flag for AccessSSLFlags IIS metabase property. + + + This corresponds to AccessSSLNegotiateCert flag for AccessSSLFlags IIS metabase property. + + + This corresponds to AccessSSLRequireCert flag for AccessSSLFlags IIS metabase property. + + + + + + WebError used by WebSites and VirtualDirs + + + + + + + + + + + + + + + + + + + + MimeMap definition for IIS resources. + + + Id for the MimeMap. + + + Mime-type covered by the MimeMap. + + + Extension covered by the MimeMap. Must begin with a dot. + + + + + + IIs Filter for a Component + + + The unique Id for the web filter. + + + The name of the filter to be used in IIS. + + + Usually a Property that resolves to short file name path + + + Required if not found as child of WebSite element + + + Description of the filter. + + + Sets the MD_FILTER_FLAGS metabase key for the filter.  This must be an integer.  See MSDN 'FilterFlags' documentation for more details. + + + Allowed values: "first", "last", number + + + + + + Extension for WebApplication + + + + usually a Property that resolves to short file name path + + + + + + + + + + + + IIS6 Application Pool + + + + + + Id of the AppPool. + + + Name of the AppPool to be shown in IIs. + + + User account to run the AppPool as. To use this, you must set the Identity attribute to 'other'. + + + How often, in minutes, you want the AppPool to be recycled. + + + How often, in requests, you want the AppPool to be recycled. + + + Shutdown worker process after being idle for (time in minutes). + + + Limit the kernel request queue (number of requests). + + + Maximum CPU usage (percent). + + + Refresh CPU usage numbers (in minutes). + + + Action taken when CPU exceeds maximum CPU use (as defined with MaxCpuUsage and RefreshCpu). + + + + + + + + + Maximum number of worker processes. + + + Identity you want the AppPool to run under. Use the 'other' value in conjunction with the User attribute to specify non-standard user. + + + + + + + + + + + + + + IIS6 Application Pool Recycle Times on 24 hour clock. + + + + + + + + + + + + + Used to install Perfmon counters. + + + + + + + SSL Certificates + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IIsProperties + + + + + + + + + + + + + + + + Defines properties for a web application. These properties can be used for more than one application defined in a web site, directory, or vroot, by defining this element in a common location and referring to it by setting the WebApplication attribute of the WebSite, WebDir, and WebVirtualDir elements. + + + + + + + Sets the name of this application. + + + Sets the application isolation level for this application for pre-IIS 6 applications. Low means the application executes within the IIS process, medium executes pooled in a separate process, and high means execution alone in a separate process. + + + + + + + + + + Sets the Enable Session State option. When enabled, you can set the session timeout using the SessionTimeout attribute. + + + Sets the timeout value for sessions in minutes. + + + Sets the option that enables response buffering in the application, which allows ASP script to set response headers anywhere in the script. + + + Sets the parent paths option, which allows a client to use relative paths to reach parent directories from this application. + + + Sets the default script language for the site. + + + + + + + + + Sets the timeout value for executing ASP scripts. + + + Enable ASP server-side script debugging. + + + Enable ASP client-side script debugging. + + + References the Id attribute of a WebAppPool element to use as the application pool for this application in IIS 6 applications. + + + + + + WebAddress for WebSite + + + + For IP address "All Unassigned", do not specify this attribute or specify its value as "*". + + + + + + + + + + Defines an IIS virtual directory. When this element is a child of WebSite element, the virtual directory is defined within that web site. Otherwise this virtual directory must reference a WebSite element via the WebSite attribute + + + + + + + + + References the Id attribute for a WebSite in which this virtual directory belongs. Required when this element is not a child of WebSite element. + + + Sets the application name, which is the URL relative path used to access this virtual directory + + + References the Id attribute for a Directory element that points to the content for this virtual directory. + + + References the Id attribute for a WebDirProperties element that specifies the security and access properties for this virtual directory. + + + References the Id attribute for a WebApplication element that specifies web application settings for this virtual directory. If a WebApplication child is not specified, the virtual directory does not host web applications. + + + + + + Defines a subdirectory within an IIS web site. When this element is a child of WebSite, the web directory is defined within that web site. Otherwise the web directory must reference a WebSite element via the WebSite attribute. + + + + + + + References the Id attribute for a WebSite element in which this directory belongs. Required when this element is not a child of a WebSite element. + + + Specifies the name of this web directory. + + + References the Id attribute for a WebDirProperties element that specifies the security and access properties for this web directory. + + + References the Id attribute for a WebApplication element that specifies web application settings for this web directory. If a WebApplication child is not specified, the web directory does not host web applications. + + + + + + + IIs Web Site + + +
+
Nesting WebSite under a Component element will result in a WebSite being installed to the machine as the package is installed.
+
Nesting WebSite under Product, Fragment, or Module + results in a web site "locator" record being created in + the IIsWebSite table. This means that the web site + itself is neither installed nor uninstalled by the MSI + package. It does make the database available for referencing + from a WebApplication, WebVirtualDir or WebDir record. This allows an MSI to install + WebApplications, WebVirtualDirs or WebDirs to already existing web sites on the machine. + The install will fail if the web site does not exist in these cases.
+
+
+
+
+ + + + + + + + + + + + + Identifier for the WebSite. Used within the MSI package only. + + + This is the name of the web site that will show up in the IIS management console. + + + Root directory of the web site. Resolved to a directory in the Directory table at install time by the server custom actions. + + + Reference to WebDirProperties element. + + + Specifies whether to automatically start the web site. + + + Specifies whether to start the web site on install. + + + Specifies whether to configure the web site if it already exists. Note: This will not affect uninstall behavior. If the web site exists on uninstall, it will be removed. + + + Sequence that the web site is to be created in. + + + Reference to a WebApplication that is to be installed as part of this web site. + + + Reference to WebLog definition. + + +
+ + + WebLog definition. + + + Identifier for the WebLog. + + + IIS - Microsoft IIS Log File Format, NCSA - NCSA Common Log File Format, ODBC - ODBC Logging, W3C - W3C Extended Log File Format + + + + + + + + + + + + + + The WebServiceExtension property is used by the Web server to determine whether a Web service extension is permitted to run. + + + + Usually a Property that resolves to short file name path + + + Description of the extension. + + + String used to identify groups of extensions. + + + Indicates if the extension is allowed or denied. + + + Indicates if the UI is allowed to delete the extension from the list of not. Default: Not deletable. + + + + + + SQL String + + + + + + + + + + + + + + + + SQL Script + + + + + + + required when not child of SqlDatabase + + + + + only valid if no Binary child element + + + + + + + + + + + + + + + + + + + SQL Database + + +
+
Nesting SqlDatabase under a Component element will result in a SqlDatabase being installed to the machine as the package is installed.
+
Nesting SqlDatabase under Product, Fragment, or Module + results in a database "locator" record being created in + the SqlDatabase table. This means that the database + itself is neither installed nor uninstalled by the MSI + package. It does make the database available for referencing + from a SqlString or SqlScript record. This allows MSI to install + SqlScripts or SqlStrings to already existing databases on the machine. + The install will fail if the database does not exist in these cases.
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + File specification for a Sql database. + + + ID of the file specification. + + + Name of the file specification. + + + Filename for the file specification. + + + Size of the file specification. + + + MaxSize of the file specification. + + + GrowthSize of the file specification. + + + + + + File specification for a Sql database. + + + ID of the file specification. + + + ID of the file specification. + + + ID of the file specification. + + + ID of the file specification. + + + ID of the file specification. + + + ID of the file specification. + + + + + + + + + + + + Text node specifies the condition of the action. + + The name of an action that this action should come before. + + + The name of an action that this action should come after. + + + A value used to indicate the position of this action in a sequence. + + + If yes, this action will not occur. + + + + + + + + + + A value used to indicate the position of this action in a sequence. + + + If yes, this action will not occur. + + + + + + + + + Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF". + + + + + + + Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF". A GUID can be auto-generated by writing all question marks like this: "????????-????-????-????-????????????". Also allows "PUT-GUID-HERE" for use in examples. + + + + + + + Values of this type will look like: "01234567-89AB-CDEF-0123-456789ABCDEF", but also allows "PUT-GUID-HERE" for use in examples. + + + + + + + Values of this type must be an integer or the value can be a localization variable with the format $(loc.VARIABLE). + + + + + + + Values of this type will look like: "FileName.ext". The following characters are not allowed: \ ? | > : / * " + , ; = [ ] less-than, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format $(loc.VARIABLE). + + + + + + + Values of this type will look like: "Long File Name.extension". The following characters are not allowed: \ ? | > : / * " or less-than. The name must be shorter than 260 characters. The value could also be a localization variable with the format $(loc.VARIABLE). + + + + + + + Values of this type will look like: "File?.*". The following characters are not allowed: \ | > : / " + , ; = [ ] less-than, or whitespace. The name cannot be longer than 8 characters and the extension cannot exceed 3 characters. The value could also be a localization variable with the format $(loc.VARIABLE). + + + + + + + Values of this type will look like: "Long File N?me.extension*". The following characters are not allowed: \ | > : / " or less-than. The name must be shorter than 260 characters. The value could also be a localization variable with the format $(loc.VARIABLE). + + + + + + + This type supports any hexadecimal number. Both upper and lower case is acceptable for letters appearing in the number. This type also includes the empty string: "". + + + + + + + Values of this type will either be "yes" or "no". + + + + + + + + Values of this type will either be "default", "yes", or "no". + + + + + + + + + Values of this type are any integers between 0 and 100, inclusive. + + + + + + + Enum type for the Class element's Context attribute list. + + + + + + + + + + + + + + + + + + +
diff --git a/data/schemas/xslt.xsd b/data/schemas/xslt.xsd new file mode 100644 index 0000000000..9b75169409 --- /dev/null +++ b/data/schemas/xslt.xsd @@ -0,0 +1,388 @@ + + + + + + Copyright (C) 2005 Matthew Ward + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/AssemblyInfo.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/AssemblyInfo.cs index 0c69c2934b..92d12a843a 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/AssemblyInfo.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following @@ -23,7 +23,7 @@ using System.Runtime.CompilerServices; // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): -[assembly: AssemblyVersion("1.1.0.1964")] +[assembly: AssemblyVersion("2.0.0.1")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing. diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin index 99554398b4..98027459f6 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.addin @@ -4,28 +4,29 @@ url = "http://www.icsharpcode.net" description = "Xml Editor" version = "1.0.0"> - + - - + + - + - + - - + + - - - + + + - + - + - + - - + + - + - - + + - - + + - - - + + + - - + - - - - - - + + + + + diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj index 6bfe81032c..6f691c78d7 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj @@ -68,6 +68,9 @@ + + Always + diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditorAddInOptions.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditorAddInOptions.cs index e6a9713ead..e3136e0d6e 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditorAddInOptions.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditorAddInOptions.cs @@ -90,13 +90,11 @@ namespace ICSharpCode.XmlEditor /// public static XmlSchemaAssociation GetSchemaAssociation(string extension) { - object property = Properties.Get(extension); + string property = Properties.Get("ext" + extension, ""); + XmlSchemaAssociation association = null; - XmlSchemaAssociation association = property as XmlSchemaAssociation; - XmlElement element = property as XmlElement; - - if (element != null) { - association = XmlSchemaAssociation.ConvertFromXmlElement(element) as XmlSchemaAssociation; + if (property.Length > 0) { + association = XmlSchemaAssociation.ConvertFromString(property); } // Use default? @@ -109,7 +107,7 @@ namespace ICSharpCode.XmlEditor public static void SetSchemaAssociation(XmlSchemaAssociation association) { - Properties.Set(association.Extension, association); + Properties.Set("ext" + association.Extension, association.ConvertToString()); } public static bool ShowAttributesWhenFolded { diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaAssociation.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaAssociation.cs index 5ed186c6fc..ccbc646046 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaAssociation.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaAssociation.cs @@ -35,9 +35,6 @@ namespace ICSharpCode.XmlEditor string namespacePrefix = String.Empty; static readonly string schemaAssociationElementName = "SchemaAssociation"; - static readonly string extensionAttributeName = "extension"; - static readonly string namespaceAttributeName = "namespace"; - static readonly string prefixAttributeName = "prefix"; public XmlSchemaAssociation(string extension) : this(extension, String.Empty, String.Empty) @@ -114,7 +111,7 @@ namespace ICSharpCode.XmlEditor association = new XmlSchemaAssociation(extension, @"http://nant.sf.net/schemas/nant-0.84.win32.net-1.0.xsd"); break; case ".addin": - association = new XmlSchemaAssociation(extension, @"http://www.icsharpcode.net/2004/addin"); + association = new XmlSchemaAssociation(extension, @"http://www.icsharpcode.net/2005/addin"); break; case ".xsl": case ".xslt": @@ -161,43 +158,15 @@ namespace ICSharpCode.XmlEditor /// /// Creates an XmlSchemaAssociation from the saved xml. /// - public object FromXmlElement(XmlElement element) + public static XmlSchemaAssociation ConvertFromString(string text) { - return XmlSchemaAssociation.ConvertFromXmlElement(element); + string[] parts = text.Split(new char[] {'|'}, 3); + return new XmlSchemaAssociation(parts[0], parts[1], parts[2]); } - /// - /// Creates an XmlSchemaAssociation from the saved xml. - /// - public static object ConvertFromXmlElement(XmlElement element) - { - XmlSchemaAssociation association = null; - - if (element.ChildNodes.Count == 1) { - XmlElement childElement = element.ChildNodes[0] as XmlElement; - if (childElement != null) { - if (childElement.Name == schemaAssociationElementName) { - association = new XmlSchemaAssociation(childElement.GetAttribute(extensionAttributeName), childElement.GetAttribute(namespaceAttributeName), childElement.GetAttribute(prefixAttributeName)); - } else { - throw new ApplicationException(childElement.Name); - } - } - } - return association; - } - - /// - /// Creates an xml element from an XmlSchemaAssociation. - /// - public XmlElement ToXmlElement(XmlDocument doc) + public string ConvertToString() { - XmlElement element = doc.CreateElement(schemaAssociationElementName); - - element.SetAttribute(extensionAttributeName, extension); - element.SetAttribute(namespaceAttributeName, namespaceUri); - element.SetAttribute(prefixAttributeName, namespacePrefix); - - return element; + return extension + "|" + namespaceUri + "|" + namespacePrefix; } } } diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaManager.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaManager.cs index 106f1e3d5c..3a3fd4af9b 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaManager.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlSchemaManager.cs @@ -135,6 +135,8 @@ namespace ICSharpCode.XmlEditor /// void ReadSchemas() { + // MSBuild schemas are in framework directory: + ReadSchemas(System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory(), true); ReadSchemas(SchemaFolder, true); ReadSchemas(UserSchemaFolder, false); } diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlView.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlView.cs index e6711891a3..db8ad9028a 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlView.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlView.cs @@ -332,7 +332,7 @@ namespace ICSharpCode.XmlEditor public void ParseInformationUpdated(ParseInformation parseInfo) { - UpdateFolding(); + xmlEditor.BeginInvoke(new MethodInvoker(UpdateFolding)); } #endregion diff --git a/src/AddIns/DisplayBindings/XmlEditor/Test/AssemblyInfo.cs b/src/AddIns/DisplayBindings/XmlEditor/Test/AssemblyInfo.cs index 0c69c2934b..92d12a843a 100644 --- a/src/AddIns/DisplayBindings/XmlEditor/Test/AssemblyInfo.cs +++ b/src/AddIns/DisplayBindings/XmlEditor/Test/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Runtime.CompilerServices; // Information about this assembly is defined by the following @@ -23,7 +23,7 @@ using System.Runtime.CompilerServices; // You can specify all values by your own or you can build default build and revision // numbers with the '*' character (the default): -[assembly: AssemblyVersion("1.1.0.1964")] +[assembly: AssemblyVersion("2.0.0.1")] // The following attributes specify the key for the sign of your assembly. See the // .NET Framework documentation for more information about signing. diff --git a/src/SharpDevelop.sln b/src/SharpDevelop.sln index a86bc42175..bc1c9e1341 100644 --- a/src/SharpDevelop.sln +++ b/src/SharpDevelop.sln @@ -1,5 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 9.00 -# SharpDevelop 2.0.0.306 +# SharpDevelop 2.0.0.309 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}" ProjectSection(SolutionItems) = postProject EndProjectSection @@ -8,6 +8,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display ProjectSection(SolutionItems) = postProject EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmlEditor", "AddIns\DisplayBindings\XmlEditor\Project\XmlEditor.csproj", "{6B717BD1-CD5E-498C-A42E-9E6A4584DC48}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FormDesigner", "AddIns\DisplayBindings\FormDesigner\Project\FormDesigner.csproj", "{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}" @@ -166,6 +168,7 @@ Global {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} = {14A277EE-7DF1-4529-B639-7D1EF334C1C5} {CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} {7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} + {6B717BD1-CD5E-498C-A42E-9E6A4584DC48} = {4EA396ED-64AD-4AD0-A67A-AB363F3E0C79} {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} {BF38FB72-B380-4196-AF8C-95749D726C61} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C} {6e59af58-f635-459a-9a35-c9ac41c00339} = {FEB825FA-4AD8-425D-8E4A-B5A18EE1B81C}