﻿<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/developer/vstemplate/2005" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="VSTemplate">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="TemplateData">
                    <xs:annotation>
                        <xs:documentation>
                            <!-- _locID_text="TemplateData" _locComment="" -->Includes the content for the appearance of the Template in the New Project Dialog
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:all>
                            <xs:element name="Name" type="NameDescriptionIcon">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="TemplateData.Name" _locComment="" -->Specifies the name, as a string, of the template as it will appear in the New Project / Add New Item dialog
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Description" type="NameDescriptionIcon">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="Description" _locComment="" -->Specifies the description, as a string, of the template as it will appear in the New Project / Add New Item dialog
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Icon" type="NameDescriptionIcon">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="Icon" _locComment="" -->Specifies the icon, as a filename, for the template icon that will appear in the New Project / Add New Item dialog
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="PreviewImage" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="PreviewImage" _locComment="" -->Specifies the preview image, as a filename, for the preview image that will appear in the New Project / Add New Item dialog
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="ProjectType" type="xs:string">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="ProjectType" _locComment="" -->Specifies the Project Type, as a string, of the template.  This is usually: CSharp, VisualBasic or Web. If you will include AppliesTo element, then ProjectType is optional.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="ProjectSubType" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="ProjectSubType" _locComment="" -->Specifies the Project Subtype (if any), as a string, of the template.  This value specifies the aggregate project system for an Item Template.  Possible values include: SmartDevice-NETCFv1, SmartDevice-NETCFv2.  For Web projects, possible ProjectSubTypes include: CSharp and VisualBasic.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="TemplateID" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="TemplateID" _locComment="" -->Specifies an optional unique identifier, as a string, for the template.  If none is specified, the Name will be used as the template identifier.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="TemplateGroupID" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="TemplateGroupID" _locComment="" -->Specifies an optional group identifier, as a string, for the template.  Some kinds of projects require this for the item template to appear in the Add New Item dialog.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="AppliesTo" type="xs:string" minOccurs="0" maxOccurs="1">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="AppliesTo" _locComment="" -->Specifies an optional expression to match one or more capabilites see http://msdn.microsoft.com/en-us/library/vstudio/microsoft.visualstudio.shell.interop.ivsbooleansymbolexpressionevaluator.evaluateexpression.aspx. Capabilities are exposed by project types via the hierarchy as a property VSHPROPID_ProjectCapabilities. This enables the template to be shared by multiple project types which have common applicable capabilities. 
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="SortOrder" type="xs:integer" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="SortOrder" _locComment="" -->Specifies template order of appearance in the New Project Dialog.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="CreateNewFolder" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="CreateNewFolder" _locComment="" -->Specifies if a new folder should be created for the project.  If omitted, this defaults to FALSE.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="DefaultName" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="DefaultName" _locComment="" -->Specifies the Name to be displayed in the name field of the New Project / Add New Item dialog
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="ProvideDefaultName" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="ProvideDefaultName" _locComment="" -->Specifies if a Default Name should be provided in the name field of the New Project / Add New Item dialog
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="PromptForSaveOnCreation" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="PromptForSaveOnCreation" _locComment="" -->Specifies if the project should be saved upon creation.  Not all project types support this and this value may be ignored for those
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="EnableLocationBrowseButton" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="EnableLocationBrowseButton" _locComment="" -->Specifies is the user can browse to a different directory to create the solution
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="EnableEditOfLocationField" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="EnableEditOfLocationField" _locComment="" -->Specifies is the user can edit the location field
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Hidden" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="Hidden" _locComment="" -->Specifies that the template should not appear in the New Project / Add New Item dialog.  If specified, no other elements inside the TemplateData are required. No errors will be logged if the template is malformed or otherwise in error
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="LocationFieldMRUPrefix" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="LocationFieldMRUPrefix" _locComment="" -->Specifies the Most Recently Used paths in the New Project / New Item dialog. This tag is should only be used for internally (VS or VSIP) produced templates.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="NumberOfParentCategoriesToRollUp" type="xs:integer" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="NumberOfParentCategoriesToRollUp" _locComment="" -->Displays the template in parent categories (roll up display). This tag is only used for internally (VS or VSIP) produced templates. Ignored for user templates
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="CreateInPlace" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="CreateInPlace" _locComment="" -->Create project files directly at the target location.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="BuildOnLoad" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="BuildOnLoad" _locComment="" -->Builds solution immediately after creation
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="BuildProjectOnLoad" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="BuildProjectOnLoad" _locComment="" -->Builds the newly added project only immediately after creation
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="ShowByDefault" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="ShowByDefault" _locComment="" -->If set to false will only display the template under the specified TemplateGroupID. Default or unspecified is true.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="LocationField" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="LocationField" _locComment="" -->Specifies whether the location field is enabled, disabled or hidden.
                                    </xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="Enabled"/>
                                        <xs:enumeration value="Disabled"/>
                                        <xs:enumeration value="Hidden"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="SupportsMasterPage" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="SupportsMasterPage" _locComment="" -->Specifies whether the template supports having a master page (Web option)
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="SupportsCodeSeparation" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="SupportsCodeSeparation" _locComment="" -->Specifies whether the template supports code separation (Web option)
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="SupportsLanguageDropdown" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="SupportsLanguageDropDown" _locComment="" -->Specifies whether the template is identical for multiple languages and a language dropdown should appear (Web option)
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="AppendDefaultFileExtension" type="xs:boolean" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="AppendDefaultFileExtension" _locComment="" -->Specifies whether the template should append the default file extension
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="RequiredFrameworkVersion" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="RequiredFrameworkVersion" _locComment="" -->Specifies the minimum .Net Framework version required by the template
                                    </xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="2.0"/>
                                        <xs:enumeration value="3.0"/>
                                        <xs:enumeration value="3.5"/>
                                        <xs:enumeration value="4.0"/>
                                        <xs:enumeration value="4.5"/>
                                        <xs:enumeration value="4.5.1"/>
                                        <xs:enumeration value="4.5.2"/>
                                        <xs:enumeration value="4.6"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="FrameworkVersion" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="FrameworkVersion" _locComment="" -->Deprecated. Use RequiredFrameworkVersion instead
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="MaxFrameworkVersion" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="MaxFrameworkVersion" _locComment="" -->Specifies the maximum .Net Framework version supported by the template
                                    </xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="2.0"/>
                                        <xs:enumeration value="3.0"/>
                                        <xs:enumeration value="3.5"/>
                                        <xs:enumeration value="4.0"/>
                                        <xs:enumeration value="4.5"/>
                                        <xs:enumeration value="4.5.1"/>
                                        <xs:enumeration value="4.5.2"/>
                                        <xs:enumeration value="4.6"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="TargetPlatformName" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="TargetPlatformName" _locComment="" -->Specifies the name of the platform targeted by the template.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="RequiredPlatformVersion" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="RequiredPlatformVersion" _locComment="" -->Specifies the minimum version of the platform indicated by TargetPlatformName required by the template.
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="MaxOSVersion" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="MaxOSVersion" _locComment="" -->Maximum supported OS version - Expected to be a Windows version e.g. "6.2.9200" for Windows 8
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="SpecialTemplateType" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="SpecialTemplateType" _locComment="" -->Special project template type: EmptyShared (for empty shared project), EmptyNode (for empty head node for one app)
                                    </xs:documentation>
                                </xs:annotation>
                                <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="EmptyShared"/>
                                        <xs:enumeration value="EmptyNode"/>
                                    </xs:restriction>
                                </xs:simpleType>
                            </xs:element>
                            <xs:element name="CustomDataSignature" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="CustomDataSignature" _locComment="" -->Specifies the text signature to locate the customdata
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="AppIdFilter" type="xs:string" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="AppIdFilter" _locComment="" -->Specifies template availability based on AppId. Syntax: “[-|!]appid1{;[-|!]appid2}” (where "-" and "!" can be used for negation). E.g. "blend"
                                    </xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:all>
                    </xs:complexType>
                </xs:element>
                <xs:element name="TemplateContent">
                    <xs:annotation>
                        <xs:documentation>
                            <!-- _locID_text="TemplateContent" _locComment="" -->Contains the content for the template
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:choice>
                                <xs:element name="ProjectCollection">
                                    <xs:annotation>
                                        <xs:documentation>
                                            <!-- _locID_text="ProjectCollection" _locComment="" -->Specifies a collection of links to other templates. Used for multi-project templates
                                        </xs:documentation>
                                    </xs:annotation>
                                    <xs:complexType>
                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                                            <xs:element ref="ProjectTemplateLink" minOccurs="0" maxOccurs="unbounded"/>
                                            <xs:element ref="SolutionFolder" minOccurs="0" maxOccurs="unbounded"/>
                                        </xs:choice>
                                    </xs:complexType>
                                </xs:element>
                                <xs:element name="Project">
                                    <xs:annotation>
                                        <xs:documentation>
                                            <!-- _locID_text="TemplateContent.Project" _locComment="" -->Describes the contents of the project template
                                        </xs:documentation>
                                    </xs:annotation>
                                    <xs:complexType>
                                        <xs:choice minOccurs="0" maxOccurs="unbounded">
                                            <xs:element ref="Folder" minOccurs="0" maxOccurs="unbounded"/>
                                            <xs:element ref="ProjectItem" minOccurs="0" maxOccurs="unbounded"/>
                                        </xs:choice>
                                        <xs:attribute name="File" type="xs:string" use="required">
                                            <xs:annotation>
                                                <xs:documentation>
                                                    <!-- _locID_text="TemplateContent.File" _locComment="" -->Specifies the Name of the project file
                                                </xs:documentation>
                                            </xs:annotation>
                                        </xs:attribute>
                                        <xs:attribute name="TargetFileName" type="xs:string" use="optional">
                                            <xs:annotation>
                                                <xs:documentation>
                                                    <!-- _locID_text="TemplateContent.TargetFileName" _locComment="" -->If specified, will replace the File Name defined by the File attribute
                                                </xs:documentation>
                                            </xs:annotation>
                                        </xs:attribute>
                                        <xs:attribute name="ReplaceParameters" type="xs:boolean" use="optional">
                                            <xs:annotation>
                                                <xs:documentation>
                                                    <!-- _locID_text="TemplateContent.ReplaceParameters" _locComment="" -->If this is set to true on any artifact in a template, the template wizard will perform parameter substitution. The format for parameters is $[parameter]$
                                                </xs:documentation>
                                            </xs:annotation>
                                        </xs:attribute>
                                        <xs:attribute name="IgnoreProjectParameter" type="xs:string" use="optional">
                                            <xs:annotation>
                                                <xs:documentation>
                                                    <!-- _locID_text="TemplateContent.IgnoreProjectParameter" _locComment="" -->This is set to a parameter name and if it exists and it's value is 'true' the project will not be added into the solution. The format for parameters is $[parameter]$
                                                </xs:documentation>
                                            </xs:annotation>
                                        </xs:attribute>
                                    </xs:complexType>
                                </xs:element>
                                <xs:sequence>
                                    <xs:element name="References" minOccurs="0">
                                        <xs:annotation>
                                            <xs:documentation>
                                                <!-- _locID_text="TemplateContent.References" _locComment=""-->Specifies any references which should be added to a project when the item is added
                                            </xs:documentation>
                                        </xs:annotation>
                                        <xs:complexType>
                                            <xs:sequence>
                                                <xs:element name="Reference" minOccurs="0" maxOccurs="unbounded">
                                                    <xs:annotation>
                                                        <xs:documentation>
                                                            <!-- _locID_text="TemplateContent.Reference" _locComment=""-->Specifies the references to be added to the project
                                                        </xs:documentation>
                                                    </xs:annotation>
                                                    <xs:complexType>
                                                        <xs:choice>
                                                            <xs:element name="Assembly" type="xs:string">
                                                                <xs:annotation>
                                                                    <xs:documentation>
                                                                        <!-- _locID_text="TemplateContent.Assembly" _locComment=""-->Required if reference element is specified for an Assembly reference.  This tag supports both simple text and strong name assembly references
                                                                    </xs:documentation>
                                                                </xs:annotation>
                                                            </xs:element>
                                                            <xs:element name="SDKReference" type="xs:string">
                                                                <xs:annotation>
                                                                    <xs:documentation>
                                                                        <!-- _locID_text="TemplateContent.SDKReference" _locComment=""-->Required if reference element is specified for SDK references.
                                                                    </xs:documentation>
                                                                </xs:annotation>
                                                            </xs:element>
                                                        </xs:choice>
                                                    </xs:complexType>
                                                </xs:element>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                    <xs:element ref="Folder" minOccurs="0" maxOccurs="unbounded"/>
                                    <xs:element name="ProjectItem" minOccurs="0" maxOccurs="unbounded">
                                        <xs:annotation>
                                            <xs:documentation>
                                                <!-- _locID_text="ProjectItem" _locComment="" -->Describes the project item
                                            </xs:documentation>
                                        </xs:annotation>
                                        <xs:complexType>
                                            <xs:simpleContent>
                                                <xs:extension base="xs:string">
                                                    <xs:attribute name="SubType" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="ProjectItem.SubType" _locComment=""-->Sets the Subtype for the item in the Project file. Used for multi-file item templates when an item has a SubType which specifies how it should be opened in the Editor.
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="CustomTool" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="ProjectItem.CustomTool" _locComment=""-->Sets the CustomTool for the item in the Project file.
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="ItemType" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="ProjectItem.ItemType" _locComment=""-->Sets the ItemType for the item in the Project file.
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="ReplaceParameters" type="xs:boolean" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="ProjectItem.ReplaceParameters" _locComment="" -->If this is set to true the template wizard will perform parameter substitution. The format for parameters is $[parameter]$
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="TargetFileName" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="ProjectItem.TargetFileName" _locComment="" -->If specified, will replace the disk file name for the project item
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="DependentUpon" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="DependentUpon" _locComment="" -->Can be used to specify that a file depends on another file
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="OpenInEditor" type="xs:string" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="OpenInEditor" _locComment="" -->Boolean value or AppId expression (e.g. "!blend") that indicates if the file should be opened in the VS editor
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="OpenOrder" type="xs:int" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="OpenOrder" _locComment="" -->Specifies the order in which multiple files should be opened when using OpenInEditor tag
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="OpenInWebBrowser" type="xs:boolean" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="OpenInWebBrowser" _locComment="" -->Can be used to open HTML files and text files which are local to the project. None of the following are supported for OpenInWebBrowser: opening any non-HTML or non-text file, supporting OpenOrder, opening external (http://address) websites.
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                    <xs:attribute name="OpenInHelpBrowser" type="xs:boolean" use="optional">
                                                        <xs:annotation>
                                                            <xs:documentation>
                                                                <!-- _locID_text="OpenInHelpBrowser" _locComment="" -->Can be used to open HTML files and text files which are local to the project. None of the following are supported for OpenInHelpBrowser: opening any non-HTML or non-text file, opening external (http://address) websites. If this is specified the OpenInEditor and OpenOrder tags will be ignored.
                                                            </xs:documentation>
                                                        </xs:annotation>
                                                    </xs:attribute>
                                                </xs:extension>
                                            </xs:simpleContent>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:choice>
                            <xs:element name="CustomParameters" minOccurs="0">
                                <xs:annotation>
                                    <xs:documentation>
                                        <!-- _locID_text="TemplateContent.CustomParameters" _locComment="" -->Specifies any custom parameters which should be passed to the template wizard when it is run to do parameter replacement.
                                    </xs:documentation>
                                </xs:annotation>
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="CustomParameter" maxOccurs="unbounded">
                                            <xs:annotation>
                                                <xs:documentation>
                                                    <!-- _locID_text="TemplateContent.CustomParameter" _locComment="" -->Specifies a custom parameter (name/value pair) to pass to the wizard
                                                </xs:documentation>
                                            </xs:annotation>
                                            <xs:complexType>
                                                <xs:attribute name="Name" type="xs:string" use="required"/>
                                                <xs:attribute name="Value" type="xs:string" use="required"/>
                                            </xs:complexType>
                                        </xs:element>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                        <xs:attribute name="PreferedSolutionConfiguration" type="xs:string">
                            <xs:annotation>
                                <xs:documentation>
                                    <!-- _locID_text="TemplateContent.PreferedSolutionConfiguration" _locComment="" -->Specifies which solution configuration should be selected by default. E.g "Debug|x86"
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                        <xs:attribute name="BuildOnLoad" type="xs:boolean">
                            <xs:annotation>
                                <xs:documentation>
                                    <!-- _locID_text="TemplateContent.BuildOnLoad" _locComment="" -->Specifies if the project should be automatically built build after using the template
                                </xs:documentation>
                            </xs:annotation>
                        </xs:attribute>
                    </xs:complexType>
                </xs:element>
                <xs:element name="WizardExtension" minOccurs="0" maxOccurs="unbounded">
                    <xs:annotation>
                        <xs:documentation>
                            <!-- _locID_text="WizardExtension" _locComment="" -->Specifies the custom wizard content to be run at project creation time
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="Assembly" maxOccurs="unbounded"/>
                            <xs:element name="FullClassName" maxOccurs="unbounded"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="WizardData" minOccurs="0" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                          <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
                        </xs:sequence>
                        <xs:attribute name="Name" type="xs:string" use="optional"/>
                    </xs:complexType>
                </xs:element>
                <!-- Used in the Visual Studio SDK to declare misc files in the vstemplate -->
                <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded" />
            </xs:sequence>
            <xs:attribute name="Type" type="xs:string" use="required"/>
            <xs:attribute name="Version" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <!--The following are reference elements and complex types which are referenced in the main XSD-->
    <xs:element name="ProjectTemplateLink">
        <xs:annotation>
            <xs:documentation>
                <!-- _locID_text="ProjectTemplateLink" _locComment="" -->Specifies a link to another project template (by .vstemplate file) to use in the collection
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="ProjectName" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectTemplateLink.ProjectName" _locComment="" -->Specifies the name of the project to be included as a link
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="CopyParameters" type="xs:boolean" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectTemplateLink.CopyParameters" _locComment="" -->If this is set to 'true', all parameters/variables in the main template will be available in the nested vstemplates with an 'ext_' prefix. For example the main template parameter $safeprojectname$ will become $ext_safeprojectname$ in the nested template - the nested template will therefore have $safeprojectname$ and $ext_safeprojectname$.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="SolutionFolder">
        <xs:annotation>
            <xs:documentation>
                <!-- _locID_text="SolutionFolder" _locComment="" -->Used to specify a solution folder structure in the .vstemplate
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="ProjectTemplateLink" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="SolutionFolder" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:attribute name="Name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        <!-- _locID_text="SolutionFolder.Name" _locComment="" -->This will be the visible name of the Solution Folder in the Visual Studio Solution Explorer. You can use a parameter/variable to make the value dynamic, for example $MyCustomFolderName$ - this will enable you to dynamically set the value in a wizard extension or one you have defined in a CustomParameter element. You can also use a well known automatically populated parameter such as $projectname$.
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="CreateOnDisk" type="xs:boolean" use="optional">
                <xs:annotation>
                    <xs:documentation>
                        <!-- _locID_text="SolutionFolder.CreateOnDisk" _locComment="" -->Specifies whether a physical folder will be created on disk to match the solution folder
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProjectItem">
        <xs:annotation>
            <xs:documentation>
                <!-- _locID_text="ProjectItem" _locComment="" -->Specifies an item in the project
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:simpleContent>
                <xs:extension base="xs:string">
                    <xs:attribute name="SubType" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectItem.SubType" _locComment=""-->Sets the Subtype for the item in the Project file. Used for multi-file item templates when an item has a SubType which specifies how it should be opened in the Editor
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="CustomTool" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectItem.CustomTool" _locComment=""-->Sets the CustomTool for the item in the Project file
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ItemType" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectItem.ItemType" _locComment=""-->Sets the ItemType for the item in the Project file
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="TargetFileName" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectItem.TargetFileName" _locComment="" -->Specifies the Target File Name for a file within the project
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="ReplaceParameters" type="xs:boolean" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="ProjectItem.ReplaceParameters2" _locComment="" -->If this is set to true the template wizard will perform parameter substitution. The format for parameters is $[parameter]$
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="OpenInEditor" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="OpenInEditor" _locComment="" -->Boolean value or AppId expression (e.g. "!blend") that indicates if the file should be opened in the VS editor
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="OpenOrder" type="xs:int" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="OpenOrder" _locComment="" -->Specifies the order in which multiple files should be opened when using OpenInEditor tag
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="OpenInWebBrowser" type="xs:boolean" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="OpenInWebBrowser" _locComment="" -->Can be used to open HTML files and text files which are local to the project. None of the following are supported for OpenInWebBrowser: opening any non-HTML or non-text file, supporting OpenOrder, opening external (http://address) websites.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                    <xs:attribute name="OpenInHelpBrowser" type="xs:boolean" use="optional">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="OpenInHelpBrowser" _locComment="" -->Can be used to open HTML files and text files which are local to the project. None of the following are supported for OpenInHelpBrowser: opening any non-HTML or non-text file, opening external (http://address) websites. If this is specified the OpenInEditor and OpenOrder tags will be ignored.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:simpleContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Folder">
        <xs:annotation>
            <xs:documentation>
                <!-- _locID_text="Folder" _locComment="" -->This element can be used to specify a project folder
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
                <xs:element ref="ProjectItem" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="Folder" minOccurs="0" maxOccurs="unbounded"/>
            </xs:choice>
            <xs:attribute name="Name" type="xs:string" use="required">
                <xs:annotation>
                    <xs:documentation>
                        <!-- _locID_text="Folder.Name" _locComment="" -->Specifies the name of the folder
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
            <xs:attribute name="TargetFolderName" type="xs:string">
                <xs:annotation>
                    <xs:documentation>
                        <!-- _locID_text="Folder.TargetFolderName" _locComment="" -->Specifies the target name for a folder
                    </xs:documentation>
                </xs:annotation>
            </xs:attribute>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="NameDescriptionIcon">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute name="Package" type="xs:string" use="optional"/>
                <xs:attribute name="ID" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:schema>
