blob: 940a02f9f1dedebdfa633b584f2f10aa82d74d12 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
<copyright file="ps.xsd" company="Outercurve Foundation">
Copyright (c) 2004, Outercurve Foundation.
This software is released under Microsoft Reciprocal License (MS-RL).
The license and further copyright text can be found in the file
LICENSE.TXT at the root directory of the distribution.
</copyright>
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension"
xmlns:html="http://www.w3.org/1999/xhtml"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi"
targetNamespace="http://schemas.microsoft.com/wix/PSExtension"
xmlns="http://schemas.microsoft.com/wix/PSExtension">
<xs:annotation>
<xs:documentation>
The source code schema for the Windows Installer XML Toolset PowerShell Extension.
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://schemas.microsoft.com/wix/2006/wi" />
<xs:element name="FormatsFile">
<xs:annotation>
<xs:documentation>
Identifies the parent File as a formats XML file for the referenced PowerShell snap-in.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
A formats XML file that defines output formats for objects on the pipeline.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="FileId" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the formats File ID. This is required when nested under the SnapIn element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SnapIn" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the PowerShell snap-in ID for which this formats file is associated. This is required when nested under the File element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="TypesFile">
<xs:annotation>
<xs:documentation>
Identifies the parent File as a types XML file for the referenced PowerShell snap-in.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
A types XML file used by the extensible type system.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:attribute name="FileId" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the types File ID. This is required when nested under the SnapIn element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="SnapIn" type="xs:string">
<xs:annotation>
<xs:documentation>
Reference to the PowerShell snap-in ID for which this types file is associated. This is required when nested under the File element.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="SnapIn">
<xs:annotation>
<xs:documentation>
Identifies the parent File as a PowerShell snap-in to be registered on the system.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" />
<xse:remarks>
<html:a href="http://www.microsoft.com/powershell">PowerShell</html:a> snap-ins
allow developers to extend the functionality of of the PowerShell engine.
Add this element to identify the parent File as a PowerShell snap-in that will
get registered on the system.
</xse:remarks>
</xs:appinfo>
</xs:annotation>
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="FormatsFile" />
<xs:element ref="TypesFile" />
</xs:choice>
<xs:attribute name="Id" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The identifier for this PowerShell snap-in.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="AssemblyName" type="xs:string">
<xs:annotation>
<xs:documentation>
The fully-qualified name of the assembly.
</xs:documentation>
<xs:appinfo>
<xse:deprecated />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:attribute name="CustomSnapInType" type="xs:string">
<xs:annotation>
<xs:documentation>
The full type name of a class that is used to register a list of cmdlets and providers.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Description" type="xs:string">
<xs:annotation>
<xs:documentation>
A brief description of the snap-in.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="DescriptionIndirect" type="EmbeddedResource">
<xs:annotation>
<xs:documentation>
An embedded resource that contains a brief description of the snap-in.
This resource must be embedded in the current snap-in assembly.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="RequiredPowerShellVersion" type="VersionType">
<xs:annotation>
<xs:documentation>
The required version of PowerShell that must be installed and is associated with the
snap-in registration. The default value is "1.0".
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Vendor" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the snap-in vendor.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="VendorIndirect" type="EmbeddedResource">
<xs:annotation>
<xs:documentation>
An embedded resource that contains the name of the snap-in vendor.
This resource must be embedded in the current snap-in assembly.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Version" type="VersionType">
<xs:annotation>
<xs:documentation>
The version of the snapin. If not specified, this is taken from the assembly name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:attribute name="RequiredVersion" type="xs:string">
<xs:annotation>
<xs:documentation>
The version of this extension required to compile the defining source.
</xs:documentation>
<xs:appinfo>
<xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="Wix" />
</xs:appinfo>
</xs:annotation>
</xs:attribute>
<xs:simpleType name="EmbeddedResource">
<xs:annotation>
<xs:documentation>
<html:p>
Values should be in the format <html:i>ResourceName,StringName</html:i>, where <html:i>ResourceName</html:i>
is the name of the embedded resource in your assembly sans the ".resources" extension, and <html:i>StringName</html:i>
is the name of the string resource in the embedded resource.
</html:p>
<html:p>
Example: UtilityMshSnapInResources,Description
</html:p>
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:simpleType name="VersionType">
<xs:annotation>
<xs:documentation>
Values of this type will look like: "x", "x.x", "x.x.x", or "x.x.x.x" where x is an integer from 0 to 65534.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="\d{1,5}(\.\d{1,5}){0,3}"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>