<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/developer/msbuild/2003" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msb="http://schemas.microsoft.com/developer/msbuild/2003"
elementFormDefault="qualified">

    <!-- =================== INCLUDE COMMON SCHEMA =========================== -->
    <xs:include schemaLocation="Microsoft.Build.Core.xsd"/>
    
    <!-- ======================== ITEMS =====================================-->
    <!-- Possible Types include SimpleItemType (no meta-data subelements), GenericItemType (any meta-data), or something more specific.-->
    <xs:element name="Reference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Reference" _locComment="" -->Reference to an assembly</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="HintPath">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_HintPath" _locComment="" -->Relative or absolute path to the assembly (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_Name" _locComment="" -->Friendly display name (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="FusionName">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_FusionName" _locComment="" -->Fusion name of the assembly (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                            
                            <xs:element name="SpecificVersion">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_SpecificVersion" _locComment="" -->Whether only the version in the fusion name should be referenced (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Aliases">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_Aliases" _locComment="" -->Aliases for the reference (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Private">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_Private" _locComment="" -->Whether the reference should be copied to the output folder (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="RequiredTargetFramework">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Reference_RequiredTargetFramework" _locComment="" -->The minimum required target framework version in order to use this assembly as a reference</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Reference_Include" _locComment="" -->Assembly name or filename</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="COMReference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="COMReference" _locComment="" -->Reference to a COM component</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Name" _locComment="" -->Friendly display name (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Guid">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Guid" _locComment="" -->GUID in the form {00000000-0000-0000-0000-000000000000}</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="VersionMajor">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_VersionMajor" _locComment="" -->Major part of the version number</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="VersionMinor">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_VersionMinor" _locComment="" -->Minor part of the version number</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Lcid">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Lcid" _locComment="" -->Locale ID</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="WrapperTool">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_WrapperTool" _locComment="" -->Wrapper tool, such as tlbimp</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Isolated">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="COMReference_Isolated" _locComment="" -->Is it isolated (boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="COMReference_Include" _locComment="" -->COM component name</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="COMFileReference" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="WrapperTool"/>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="NativeReference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="NativeReference" _locComment="" -->Reference to a native manifest file, or to a file that contains a native manifest</xs:documentation>
        </xs:annotation>        
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="NativeReference_Name" _locComment="" -->Base name of manifest file</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="HintPath">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="NativeReference_HintPath" _locComment="" -->Relative path to manifest file</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="NativeReference_Include" _locComment="" -->Reference full name</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ProjectReference" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ProjectReference" _locComment="" -->Reference to another project</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Name">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ProjectReference_Name" _locComment="" -->Friendly display name (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="Project">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ProjectReference_Project" _locComment="" -->Project GUID, in the form {00000000-0000-0000-0000-000000000000}</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Package"/>                               
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="ProjectReference_Package" _locComment="" -->Path to project file</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>    
    <xs:element name="Compile" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Compile" _locComment="" -->Source files for compiler</xs:documentation>
        </xs:annotation>        
        <xs:complexType>           
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">                       
                        <xs:choice>
                            <xs:element name="SubType"/>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="AutoGen">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Compile_AutoGen" _locComment="" -->Whether file was generated from another file (boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                 
                            <xs:element name="DesignTime"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Compile_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="DesignTimeSharedInput"/>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Compile_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="CopyToOutputDirectory"/>
                            <xs:element name="VBMyExtensionTemplateID"/>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Compile_Include" _locComment="" -->Semi-colon separated list of source files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="EmbeddedResource" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="EmbeddedResource" _locComment="" -->Resources to be embedded in the generated assembly</xs:documentation>
        </xs:annotation>        
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                               
                            <xs:element name="LastGenOutput">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_LastGenOutput" _locComment="" -->File that was created by any file generator that was run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                 
                            <xs:element name="CustomToolNamespace">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_CustomToolNamespace" _locComment="" -->Namespace into which any file generator that is run on this item should create code</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="EmbeddedResource_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory"/>
                            <xs:element name="LogicalName"/>
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="EmbeddedResource_Include" _locComment="" -->Semi-colon separated list of resource files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Content" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Content" _locComment="" -->Files that are not compiled, but may be embedded or published</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="PublishState">
                               <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_PublishState" _locComment="" -->Default, Included, Excluded, DataFile, or Prerequisite</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="IsAssembly"/>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Content_CopyToOutputDirectory" _locComment="" -->Copy file to output directory (optional, boolean, default false)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                    
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Content_Include" _locComment="" -->Semi-colon separated list of content files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>    
    <xs:element name="Page" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Page" _locComment="" -->XAML files that are converted to binary and compiled into the assembly</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Page_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Page_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Page_CopyToOutputDirectory" _locComment="" -->Copy file to output directory (optional, boolean, default false)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                    
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Page_Include" _locComment="" -->Semi-colon separated list of XAML files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>    
    <xs:element name="Resource" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Resource" _locComment="" -->File that is compiled into the assembly</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Resource_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Resource_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="Resource_CopyToOutputDirectory" _locComment="" -->Copy file to output directory (optional, boolean, default false)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                    
                        </xs:choice>
                    </xs:sequence>
                    <!-- redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="optional">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="Resource_Include" _locComment="" -->Semi-colon separated list of files (wildcards are allowed)</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>    
    <xs:element name="ApplicationDefinition" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ApplicationDefinition" _locComment="" -->XAML file that contains the application definition, only one can be defined</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ApplicationDefinition_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ApplicationDefinition_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="SubType"/>
                            <xs:element name="CopyToOutputDirectory">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="ApplicationDefinition_CopyToOutputDirectory" _locComment="" -->Copy file to output directory (optional, boolean, default false)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                    
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>   
    <xs:element name="None" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="None" _locComment="" -->Files that should have no role in the build process</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="DependentUpon"/>
                            <xs:element name="Generator">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="None_Generator" _locComment="" -->Name of any file generator that is run on this item</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                  
                            <xs:element name="LastGenOutput"/>
                            <xs:element name="CustomToolNamespace"/>
                            <xs:element name="Link">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="None_Link" _locComment="" -->Notional path within project to display if the file is physically located outside of the project file's cone (optional)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="None_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="CopyToOutputDirectory"/>                            
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="BaseApplicationManifest" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="BaseApplicationManifest" _locComment="" -->The base application manifest for the build. Contains ClickOnce security information.</xs:documentation>
        </xs:annotation>
    </xs:element>  
    <xs:element name="CodeAnalysisDictionary" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisDictionary" _locComment="" -->Code Analysis custom dictionaries.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <!-- Redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation><!-- _locID_text="CodeAnalysisDictionary_Include" _locComment="" -->Semicolon-separated list of Code Analysis custom dictionaries. Wildcards are allowed.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CodeAnalysisImport" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisImport" _locComment="" -->Code Analysis projects (*.fxcop) or reports to import.</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <!-- Redefine Include just to give a specific description -->
                    <xs:attribute name="Include" type="xs:string" use="required">
                        <xs:annotation>
                            <xs:documentation>
                                <!-- _locID_text="CodeAnalysisImport_Include" _locComment="" -->Semicolon-separated list of Code Analysis projects (*.fxcop) or reports to import. Wildcards are allowed.</xs:documentation>
                        </xs:annotation>
                    </xs:attribute>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Folder" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Folder" _locComment="" -->Folder on disk</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="Import" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Import" _locComment="" -->Assemblies whose namespaces should be imported by the Visual Basic compiler</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="Service" type="msb:SimpleItemType" substitutionGroup="msb:Item"/>
    <xs:element name="WebReferences" type="msb:SimpleItemType" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WebReferences" _locComment="" -->Name of Web References folder to display in user interface</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="WebReferenceUrl" substitutionGroup="msb:Item">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WebReferenceUrl" _locComment="" -->Represents a reference to a web service</xs:documentation>
        </xs:annotation>        
            <xs:complexType>
                <xs:complexContent>
                    <xs:extension base="msb:SimpleItemType">
                        <xs:sequence minOccurs="0" maxOccurs="unbounded">
                            <xs:choice>
                                <xs:element name="UrlBehavior"/>
                                <xs:element name="RelPath"/>
                                <xs:element name="UpdateFromURL"/>
                                <xs:element name="ServiceLocationURL"/>
                                <xs:element name="CachedDynamicPropName"/>
                                <xs:element name="CachedAppSettingsObjectName"/>
                                <xs:element name="CachedSettingsPropName"/>
                            </xs:choice>
                        </xs:sequence>
                        <!-- redefine Include just to give a specific description -->
                        <xs:attribute name="Include" type="xs:string" use="optional">
                            <xs:annotation>
                                <xs:documentation><!-- _locID_text="WebReferenceUrl_Include" _locComment="" -->URL to web service</xs:documentation>
                            </xs:annotation>
                        </xs:attribute>                        
                    </xs:extension>
                </xs:complexContent>
            </xs:complexType>
    </xs:element>
    <xs:element name="FileAssociation" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="FileAssociation_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="DefaultIcon"/>
                            <xs:element name="Description"/>
                            <xs:element name="Progid"/>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="BootstrapperFile" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="BootstrapperFile_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="ProductName"/>
                            <xs:element name="Install"/>
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="PublishFile" substitutionGroup="msb:Item">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:SimpleItemType">
                    <xs:sequence minOccurs="0" maxOccurs="unbounded">
                        <xs:choice>
                            <xs:element name="Visible">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_InProject" _locComment="" -->Display in user interface (optional, boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>                                
                            <xs:element name="Group"/>
                            <xs:element name="IncludeHash">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_IncludeHash" _locComment="" -->(boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="IsAssembly">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_IsAssembly" _locComment="" -->(boolean)</xs:documentation>
                                </xs:annotation>
                            </xs:element>
                            <xs:element name="PublishState">
                                <xs:annotation>
                                    <xs:documentation><!-- _locID_text="PublishFile_PublishState" _locComment="" -->Default, Included, Excluded, DataFile, ManifestEntryPoint, or Prerequisite</xs:documentation>
                                </xs:annotation>
                            </xs:element>                            
                        </xs:choice>
                    </xs:sequence>
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <!-- ======================== PROPERTIES =====================================-->
    <!-- Possible Types include StringPropertyType (text with no subelements), GenericPropertyType (any content), or something more specific.-->
    <xs:element name="AllowUnsafeBlocks" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ApplicationIcon" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ApplicationRevision" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ApplicationRevision" _locComment="" -->integer</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="ApplicationVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ApplicationVersion" _locComment="" -->Matches the expression "\d\.\d\.\d\.(\d|\*)"</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="AppDesignerFolder" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="AppDesignerFolder" _locComment="" -->Name of folder for Application Designer</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="AspNetConfiguration" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyKeyContainerName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyKeyProviderName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyName" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="AssemblyName" _locComment="" -->Name of output assembly</xs:documentation>
        </xs:annotation>
    </xs:element>           
    <xs:element name="AssemblyOriginatorKeyFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyOriginatorKeyFileType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyOriginatorKeyMode" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AssemblyType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="AutorunEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="AutorunEnabled" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="BaseAddress" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="BootstrapperComponentsLocation" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="BootstrapperComponentsLocation" _locComment="" -->HomeSite, Relative, or Absolute</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="BootstrapperComponentsUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="BootstrapperEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="BootstrapperEnabled" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CheckForOverflowUnderflow" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CodePage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="Configuration" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ConfigurationName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ConfigurationOverrideFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="CreateDesktopShortcut" type="msb:boolean" substitutionGroup="msb:Property" />
    <xs:element name="CreateWebPageOnPublish" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CreateWebPageOnPublish" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CurrentSolutionConfigurationContents" type="msb:GenericPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DebugSecurityZoneURL" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DebugSymbols" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DebugSymbols" _locComment="" -->Whether to emit symbols (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="DebugType" type="msb:StringPropertyType" substitutionGroup="msb:Property">   
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DebugType" _locComment="" -->none, pdbonly, or full</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="DefaultClientScript" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefaultHTMLPageLayout" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefaultTargetSchema" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefineConstants" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DefineDebug" type="msb:StringPropertyType" substitutionGroup="msb:Property">   
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DefineDebug" _locComment="" -->Whether DEBUG is defined (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="DefineTrace" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DefineTrace" _locComment="" -->Whether TRACE is defined (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="DelaySign" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DisableLangXtns" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DisallowUrlActivation" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="DisallowUrlActivation" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisApplyLogFileXsl" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisApplyLogFileXsl" _locComment="" -->Indicates whether to apply the XSL style sheet specified in $(CodeAnalysisLogFileXsl) to the Code Analysis report. This report is specified in $(CodeAnalysisLogFile). The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>    
    <xs:element name="CodeAnalysisConsoleXsl" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisConsoleXsl" _locComment="" -->Path to the XSL style sheet that will be applied to the Code Analysis console output. The default is an empty string (''), which causes Code Analysis to use its default console output.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisCulture" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisCulture" _locComment="" -->Culture to use for Code Analysis spelling rules, for example, 'en-US' or 'en-AU'. The default is the current user interface language for Windows.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisForceOutput" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisForceOutput" _locComment="" -->Indicates whether Code Analysis generates a report file, even when there are no active warnings or errors. The default is true.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisGenerateSuccessFile" type="msb:boolean" substitutionGroup="msb:Property">
          <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisGenerateSuccessFile" _locComment="" -->Indicates whether Code Analysis generates a '$(CodeAnalysisInputAssembly).lastcodeanalysissucceeded' file in the output folder when no build-breaking errors occur. The default is true.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisIgnoreInvalidTargets" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisIgnoreInvalidTargets" _locComment="" -->Indicates whether Code Analysis should silently fail when analyzing invalid assemblies, such as those without managed code. The default is true.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisIgnoreGeneratedCode" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisIgnoreGeneratedCode" _locComment="" -->Indicates whether Code Analysis should fail silently when it analyzes invalid assemblies, such as those without managed code. The default is true.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisInputAssembly" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisInputAssembly" _locComment="" -->Path to the assembly to be analyzed by Code Analysis. The default is '$(OutDir)$(TargetName)$(TargetExt)'.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisLogFile" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisLogFile" _locComment="" -->Path to the output file for the Code Analysis report. The default is '$(CodeAnalysisInputAssembly).CodeAnalysisLog.xml'.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisLogFileXsl" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisLogFileXsl" _locComment="" -->Path to the XSL style sheet to reference in the Code Analysis output report. This report is specified in $(CodeAnalysisLogFile). The default is an empty string ('').</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisModuleSuppressionsFile" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisModuleSuppressionsFile" _locComment="" -->Name of the file, without the path, where Code Analysis project-level suppressions are stored. The default is 'GlobalSuppressions$(DefaultLanguageSourceExtension)'.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisOverrideRuleVisibilities" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisOverrideRuleVisibilities" _locComment="" -->Indicates whether to run all overridable Code Analysis rules against all targets. This will cause specific rules, such as those within the Design and Naming categories, to run against both public and internal APIs, instead of only public APIs. The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisOutputToConsole" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisOutputToConsole" _locComment="" -->Indicates whether to output Code Analysis warnings and errors to the console. The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisPath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisPath" _locComment="" -->Path to the Code Analysis installation folder. The default is '$(VSINSTALLDIR)\Team Tools\Static Analysis Tools\FxCop'.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisPlatformPath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisPlatformPath" _locComment="" -->Path to the .NET Framework folder that contains platform assemblies, such as mscorlib.dll and System.dll. The default is an empty string ('').</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisProject" type="msb:StringPropertyType"  substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisProject" _locComment="" -->Path to the Code Analysis project (*.fxcop) to load. The default is an empty string ('').</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisQuiet" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisQuiet" _locComment="" -->Indicates whether to suppress all Code Analysis console output other than errors and warnings. This applies when $(CodeAnalysisOutputToConsole) is true. The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisRules" type="msb:StringPropertyType" substitutionGroup="msb:Property">
         <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisRules" _locComment="" -->Semicolon-separated list of Code Analysis rules. The rules are in the form '[+|-][!]Category#CheckId', where '+' enables the rule, '-' disables the rule, and '!' causes the rule to be treated as an error. For example, '-Microsoft.Naming#CA1700;+!Microsoft.Naming#CA1701'. The default is an empty string ('') which enables all rules.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisRuleAssemblies" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisRuleAssemblies" _locComment="" -->Semicolon-separated list of paths either to Code Analysis rule assemblies or to folders that contain Code Analysis rule assemblies. The paths are in the form '[+|-][!][file|folder]', where '+' enables all rules in rule assembly, '-' disables all rules in rule assembly, and '!' causes all rules in rule assembly to be treated as errors. For example '+D:\Projects\Rules\NamingRules.dll;+!D:\Projects\Rules\SecurityRules.dll'. The default is '$(CodeAnalysisPath)\Rules'.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisSaveMessagesToReport" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisSaveMessagesToReport" _locComment="" -->Comma-separated list of the type ('Active', 'Excluded', or 'Absent') of warnings and errors to save to the output report file. The default is 'Active'.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisSearchGlobalAssemblyCache" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisSearchGlobalAssemblyCache" _locComment="" -->Indicates whether Code Analysis should search the Global Assembly Cache (GAC) for missing references that are encountered during analysis. The default is true.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisSummary" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisSummary" _locComment="" -->Indicates whether to output a Code Analysis summary to the console after analysis. The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisTimeout" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisTimeout" _locComment="" -->The time, in seconds, that Code Analysis should wait for analysis of a single item to complete before it aborts analysis. Specify 0 to cause Code Analysis to wait indefinitely. The default is 120.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisTreatWarningsAsErrors" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisTreatWarningsAsErrors" _locComment="" -->Indicates whether to treat all Code Analysis warnings as errors. The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisUpdateProject" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisUpdateProject" _locComment="" -->Indicates whether to update the Code Analysis project (*.fxcop) specified in $(CodeAnalysisProject). This applies when there are changes during analysis. The default is false.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="CodeAnalysisUseTypeNameInSuppression" type="msb:boolean" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="CodeAnalysisUseTypeNameInSuppression" _locComment="" -->Indicates whether to include the name of the rule when Code Analysis emits a suppression. The default is true.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="DeployDirSuffix" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="DocumentationFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableASPDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableASPXDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableSQLServerDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableSecurityDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="EnableUnmanagedDebugging" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ErrorReport" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ErrorReportUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ExcludeDeploymentUrl" type="msb:boolean" substitutionGroup="msb:Property"/>
    <xs:element name="ExcludedPermissions" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FallbackCulture" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FileAlignment" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FileUpgradeFlags" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="FormFactorID" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="GenerateManifests" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="GenerateSerializationAssemblies" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="HostInBrowser" type="msb:boolean" substitutionGroup="msb:Property"/>
    <xs:element name="Install" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="InstallFrom" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="InstallFrom" _locComment="" -->Web, Unc, or Disk</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="InstallUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="IsWebBootstrapper" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="JCPA" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="LangVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ManifestCertificateThumbprint" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ManifestKeyFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="MapFileExtensions" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="MapFileExtensions" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="MinimumRequiredVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="MinimumRequiredVersion" _locComment="" -->Matches the expression "\d\.\d\.\d\.\d"</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="MyType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="NoConfig" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="NoStandardLibraries" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="NoStdLib" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="NoStdLib" _locComment="" -->Whether standard libraries (such as mscorlib) should be referenced automatically (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="NoWarn" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="NoWarn" _locComment="" -->Comma separated list of disabled warnings</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="OpenBrowserOnPublish" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OpenBrowserOnPublish" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="Optimize" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="Optimize" _locComment="" -->Should compiler optimize output (boolean)</xs:documentation>
        </xs:annotation>
    </xs:element>     
    <xs:element name="OptionCompare" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionCompare" _locComment="" -->Option Compare setting (Text or Binary)</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="OptionExplicit" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionExplicit" _locComment="" -->Should Option Explicit be set (On or Off)</xs:documentation>
        </xs:annotation>
    </xs:element>         
    <xs:element name="OptionStrict" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionStrict" _locComment="" -->Should Option Strict be set (On or Off)</xs:documentation>
        </xs:annotation>
    </xs:element>       
    <xs:element name="OptionInfer" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OptionInfer" _locComment="" -->Should Option Infer be set (On or Off)</xs:documentation>
        </xs:annotation>
    </xs:element>            
    <xs:element name="OSVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="OutputPath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OutputPath" _locComment="" -->Path to output folder, with trailing slash</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="OutputType" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="OutputType" _locComment="" -->Type of output to generate (WinExe, Exe, or Library)</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="Platform" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PlatformName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PlatformFamilyName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="PlatformID" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="PlatformTarget" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PostBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="PostBuildEvent" _locComment="" -->Command line to be run at the end of build</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="PreBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="PreBuildEvent" _locComment="" -->Command line to be run at the start of build</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="ProductName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProductVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProjectGuid" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProjectType" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ProjectTypeGuids" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PublisherName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="PublishUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RecursePath" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ReferencePath" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="ReferencePath" _locComment="" -->Semi-colon separated list of folders to search during reference resolution</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="RegisterForComInterop" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RemoteDebugEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RemoteDebugMachine" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RemoveIntegerChecks" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="ResponseFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RootNamespace" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="RunCodeAnalysis" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="RunCodeAnalysis" _locComment="" -->Indicates whether to run Code Analysis during the build.</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="RunPostBuildEvent" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SchemaVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SecureScoping" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SignAssembly" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SignManifests" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionDir" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionExt" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionFileName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SolutionPath" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartAction" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartArguments" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartPage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartProgram" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartURL" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartWithIE" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartWorkingDirectory" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="StartupObject" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="StartupObject" _locComment="" -->Type that contains the main entry point</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="SuiteName" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="SupportUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TargetCulture" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TargetFrameworkVersion" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="TargetZone" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TreatWarningsAsErrors" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="TrustUrlParameters" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="TrustUrlParameters" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="TypeComplianceDiagnostics" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UICulture" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UpdateEnabled" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateEnabled" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="UpdateInterval" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UpdateIntervalUnits" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateIntervalUnits" _locComment="" -->Hours, Days, or Weeks</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="UpdateMode" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateMode" _locComment="" -->Foreground or Background</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:element name="UpdatePeriodically" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdatePeriodically" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="UpdateRequired" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="UpdateRequired" _locComment="" -->boolean</xs:documentation>
        </xs:annotation>
    </xs:element>                
    <xs:element name="UpdateUrl" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>    
    <xs:element name="UTF8OutPut" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UseApplicationTrust" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="UseVSHostingProcess" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="VSTO_TrustAssembliesLocation" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="WarningLevel" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WarningLevel" _locComment="" -->integer between 0 and 4 inclusive</xs:documentation>
        </xs:annotation>
    </xs:element>        
    <xs:element name="WarningsAsErrors" type="msb:StringPropertyType" substitutionGroup="msb:Property">
        <xs:annotation>
            <xs:documentation><!-- _locID_text="WarningsAsErrors" _locComment="" -->Comma separated list of warning numbers to treat as errors</xs:documentation>
        </xs:annotation>
    </xs:element>          
    <xs:element name="WebPage" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <xs:element name="Win32ResourceFile" type="msb:StringPropertyType" substitutionGroup="msb:Property"/>
    <!-- ======================== TASKS =====================================-->
    <xs:element name="AL" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AlgorithmId" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CompanyName" />
                    <xs:attribute name="Configuration" />
                    <xs:attribute name="Copyright" />
                    <xs:attribute name="Culture" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="Description" />
                    <xs:attribute name="EmbedResources" />
                    <xs:attribute name="EvidenceFile" />
                    <xs:attribute name="FileVersion" />
                    <xs:attribute name="Flags" />
                    <xs:attribute name="GenerateFullPaths" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="OutputAssembly" use="required" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="ProductName" />
                    <xs:attribute name="ProductVersion" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="SourceModules" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="TemplateFile" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="Title" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="Trademark" />
                    <xs:attribute name="Version" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AspNetCompiler" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AllowPartiallyTrustedCallers" type="msb:boolean" />
                    <xs:attribute name="Clean" type="msb:boolean" />
                    <xs:attribute name="Debug" type="msb:boolean" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="FixedNames" type="msb:boolean" />
                    <xs:attribute name="Force" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="MetabasePath" />
                    <xs:attribute name="PhysicalPath" />
                    <xs:attribute name="TargetPath" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="Updateable" type="msb:boolean" />
                    <xs:attribute name="VirtualPath" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AssignCulture" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Files" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AssignProjectConfiguration" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AssignedProjects" />
                    <xs:attribute name="ProjectReferences" use="required" />
                    <xs:attribute name="SolutionConfigurationContents" />
                    <xs:attribute name="UnassignedProjects" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="AssignTargetPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Files" />
                    <xs:attribute name="RootFolder" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CallTarget" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="RunEachTargetSeparately" type="msb:boolean" />
                    <xs:attribute name="Targets" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CombinePath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Paths" use="required" />
                    <xs:attribute name="BasePath" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Copy" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DestinationFiles" />
                    <xs:attribute name="DestinationFolder" />
                    <xs:attribute name="SkipUnchangedFiles" type="msb:boolean" />
                    <xs:attribute name="SourceFiles" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateCSharpManifestResourceName" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ResourceFiles" use="required" />
                    <xs:attribute name="RootNamespace" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateItem" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalMetadata" />
                    <xs:attribute name="Exclude" />
                    <xs:attribute name="Include" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateProperty" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Value" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateTemporaryVCProject" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Configuration" use="required" />
                    <xs:attribute name="OutputProjectFile" use="required" />
                    <xs:attribute name="ProjectFile" use="required" />
                    <xs:attribute name="ReferenceAssemblies" />
                    <xs:attribute name="ReferenceImportLibraries" />
                    <xs:attribute name="ReferenceGuids" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateVisualBasicManifestResourceName" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ResourceFiles" use="required" />
                    <xs:attribute name="RootNamespace" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Csc" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AddModules" />
                    <xs:attribute name="AllowUnsafeBlocks" type="msb:boolean" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CheckForOverflowUnderflow" type="msb:boolean" />
                    <xs:attribute name="CodePage" />
                    <xs:attribute name="DebugType" />
                    <xs:attribute name="DefineConstants" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="DisabledWarnings" />
                    <xs:attribute name="DocumentationFile" />
                    <xs:attribute name="EmitDebugInformation" type="msb:boolean" />
                    <xs:attribute name="ErrorReport" />
                    <xs:attribute name="FileAlignment" />
                    <xs:attribute name="GenerateFullPaths" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LangVersion" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="ModuleAssemblyName" />
                    <xs:attribute name="NoConfig" type="msb:boolean" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="NoStandardLib" type="msb:boolean" />
                    <xs:attribute name="Optimize" type="msb:boolean" />
                    <xs:attribute name="OutputAssembly" />
                    <xs:attribute name="PdbFile" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="References" />
                    <xs:attribute name="Resources" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="Sources" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="UseHostCompilerIfAvailable" type="msb:boolean" />
                    <xs:attribute name="Utf8Output" type="msb:boolean" />
                    <xs:attribute name="WarningLevel" />
                    <xs:attribute name="WarningsAsErrors" />
                    <xs:attribute name="WarningsNotAsErrors" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Delete" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DeletedFiles" />
                    <xs:attribute name="Files" use="required" />
                    <xs:attribute name="TreatErrorsAsWarnings" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Error" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Code" />
                    <xs:attribute name="HelpKeyword" />
                    <xs:attribute name="Text" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Exec" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Command" use="required" />
                    <xs:attribute name="IgnoreExitCode" type="msb:boolean" />
                    <xs:attribute name="Outputs" />
                    <xs:attribute name="StdErrEncoding" />
                    <xs:attribute name="StdErrImportance" />
                    <xs:attribute name="StdOutEncoding" />
                    <xs:attribute name="StdOutImportance" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="WorkingDirectory" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="FindUnderPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Files" />
                    <xs:attribute name="InPath" />
                    <xs:attribute name="OutOfPath" />
                    <xs:attribute name="Path" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="FormatUrl" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="InputUrl" />
                    <xs:attribute name="OutputUrl" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="FormatVersion" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="FormatType" />
                    <xs:attribute name="OutputVersion" />
                    <xs:attribute name="Revision" />
                    <xs:attribute name="Version" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateApplicationManifest" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AssemblyName" />
                    <xs:attribute name="AssemblyVersion" />
                    <xs:attribute name="ClrVersion" />
                    <xs:attribute name="ConfigFile" />
                    <xs:attribute name="Dependencies" />
                    <xs:attribute name="Description" />
                    <xs:attribute name="EntryPoint" />
                    <xs:attribute name="ErrorReportUrl" />
                    <xs:attribute name="FileAssociations" />
                    <xs:attribute name="Files" />
                    <xs:attribute name="HostInBrowser" type="msb:boolean" />
                    <xs:attribute name="IconFile" />
                    <xs:attribute name="InputManifest" />
                    <xs:attribute name="IsolatedComReferences" />
                    <xs:attribute name="ManifestType" />
                    <xs:attribute name="MaxTargetPath" />
                    <xs:attribute name="OSVersion" />
                    <xs:attribute name="OutputManifest" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="Product" />
                    <xs:attribute name="Publisher" />
                    <xs:attribute name="SuiteName" />
                    <xs:attribute name="SupportUrl" />
                    <xs:attribute name="TargetCulture" />
                    <xs:attribute name="TargetFrameworkVersion" />
                    <xs:attribute name="TrustInfoFile" />
                    <xs:attribute name="UseApplicationTrust" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateBootstrapper" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ApplicationFile" />
                    <xs:attribute name="ApplicationName" />
                    <xs:attribute name="ApplicationRequiresElevation" type="msb:boolean" />
                    <xs:attribute name="ApplicationUrl" />
                    <xs:attribute name="BootstrapperComponentFiles" />
                    <xs:attribute name="BootstrapperItems" />
                    <xs:attribute name="BootstrapperKeyFile" />
                    <xs:attribute name="ComponentsLocation" />
                    <xs:attribute name="ComponentsUrl" />
                    <xs:attribute name="CopyComponents" type="msb:boolean" />
                    <xs:attribute name="Culture" />
                    <xs:attribute name="FallbackCulture" />
                    <xs:attribute name="OutputPath" />
                    <xs:attribute name="Path" />
                    <xs:attribute name="SupportUrl" />
                    <xs:attribute name="Validate" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateDeploymentManifest" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AssemblyName" />
                    <xs:attribute name="AssemblyVersion" />
                    <xs:attribute name="CreateDesktopShortcut" type="msb:boolean" />
                    <xs:attribute name="DeploymentUrl" />
                    <xs:attribute name="Description" />
                    <xs:attribute name="DisallowUrlActivation" type="msb:boolean" />
                    <xs:attribute name="EntryPoint" />
                    <xs:attribute name="ErrorReportUrl" />
                    <xs:attribute name="InputManifest" />
                    <xs:attribute name="Install" type="msb:boolean" />
                    <xs:attribute name="MapFileExtensions" type="msb:boolean" />
                    <xs:attribute name="MaxTargetPath" />
                    <xs:attribute name="MinimumRequiredVersion" />
                    <xs:attribute name="OutputManifest" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="Product" />
                    <xs:attribute name="Publisher" />
                    <xs:attribute name="SuiteName" />
                    <xs:attribute name="SupportUrl" />
                    <xs:attribute name="TargetCulture" />
                    <xs:attribute name="TargetFrameworkVersion" />
                    <xs:attribute name="TrustUrlParameters" type="msb:boolean" />
                    <xs:attribute name="UpdateEnabled" type="msb:boolean" />
                    <xs:attribute name="UpdateInterval" />
                    <xs:attribute name="UpdateMode" />
                    <xs:attribute name="UpdateUnit" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateResource" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="NeverLockTypeAssemblies" type="msb:boolean" />
                    <xs:attribute name="OutputResources" />
                    <xs:attribute name="PublicClass" type="msb:boolean" />
                    <xs:attribute name="References" />
                    <xs:attribute name="Sources" use="required" />
                    <xs:attribute name="StateFile" />
                    <xs:attribute name="StronglyTypedClassName" />
                    <xs:attribute name="StronglyTypedFilename" />
                    <xs:attribute name="StronglyTypedLanguage" />
                    <xs:attribute name="StronglyTypedNamespace" />
                    <xs:attribute name="StronglyTypedManifestPrefix" />
                    <xs:attribute name="UseSourcePath" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GenerateTrustInfo" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="BaseManifest" />
                    <xs:attribute name="ExcludedPermissions" />
                    <xs:attribute name="TargetZone" />
                    <xs:attribute name="TrustInfoFile" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GetAssemblyIdentity" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="AssemblyFiles" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GetFrameworkPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Path" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="GetFrameworkSdkPath" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Path" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="LC" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="LicenseTarget" use="required" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="OutputDirectory" />
                    <xs:attribute name="OutputLicense" />
                    <xs:attribute name="ReferencedAssemblies" />
                    <xs:attribute name="Sources" use="required" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MakeDir" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Directories" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Message" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Importance" type="msb:importance" />
                    <xs:attribute name="Text" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="MSBuild" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="BuildInParallel" type="msb:boolean" />
                    <xs:attribute name="Projects" use="required" />
                    <xs:attribute name="Properties" />
                    <xs:attribute name="RebaseOutputs" type="msb:boolean" />
                    <xs:attribute name="RunEachTargetSeparately" type="msb:boolean" />
                    <xs:attribute name="StopOnFirstFailure" type="msb:boolean" />
                    <xs:attribute name="Targets" />
                    <xs:attribute name="ToolsVersion" />
                    <xs:attribute name="UnloadProjectsOnCompletion" type="msb:boolean" />
                    <xs:attribute name="UseResultsCache" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ReadLinesFromFile" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="File" use="required" />
                    <xs:attribute name="Lines" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="RegisterAssembly" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Assemblies" use="required" />
                    <xs:attribute name="AssemblyListFile" />
                    <xs:attribute name="CreateCodeBase" type="msb:boolean" />
                    <xs:attribute name="TypeLibFiles" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="RemoveDir" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Directories" use="required" />
                    <xs:attribute name="RemovedDirectories" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="RemoveDuplicates" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Filtered" />
                    <xs:attribute name="Inputs" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveAssemblyReference" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AllowedAssemblyExtensions" />
                    <xs:attribute name="AppConfigFile" />
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="AssemblyFiles" />
                    <xs:attribute name="AutoUnify" type="msb:boolean" />
                    <xs:attribute name="CandidateAssemblyFiles" />
                    <xs:attribute name="FilesWritten" />
                    <xs:attribute name="FindDependencies" type="msb:boolean" />
                    <xs:attribute name="FindRelatedFiles" type="msb:boolean" />
                    <xs:attribute name="FindSatellites" type="msb:boolean" />
                    <xs:attribute name="FindSerializationAssemblies" type="msb:boolean" />
                    <xs:attribute name="InstalledAssemblyTables" />
                    <xs:attribute name="SearchPaths" use="required" />
                    <xs:attribute name="Silent" type="msb:boolean" />
                    <xs:attribute name="StateFile" />
                    <xs:attribute name="TargetFrameworkDirectories" />
                    <xs:attribute name="TargetProcessorArchitecture" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveComReference" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="NoClassMembers" type="msb:boolean" />
                    <xs:attribute name="ResolvedAssemblyReferences" />
                    <xs:attribute name="ResolvedFiles" />
                    <xs:attribute name="ResolvedModules" />
                    <xs:attribute name="StateFile" />
                    <xs:attribute name="TypeLibFiles" />
                    <xs:attribute name="TypeLibNames" />
                    <xs:attribute name="WrapperOutputDirectory" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveKeySource" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AutoClosePasswordPromptShow" />
                    <xs:attribute name="AutoClosePasswordPromptTimeout" />
                    <xs:attribute name="CertificateFile" />
                    <xs:attribute name="CertificateThumbprint" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="ResolvedKeyContainer" />
                    <xs:attribute name="ResolvedKeyFile" />
                    <xs:attribute name="ResolvedThumbprint" />
                    <xs:attribute name="ShowImportDialogDespitePreviousFailures" type="msb:boolean" />
                    <xs:attribute name="SuppressAutoClosePasswordPrompt" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveManifestFiles" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="DeploymentManifestEntryPoint" />
                    <xs:attribute name="EntryPoint" />
                    <xs:attribute name="ExtraFiles" />
                    <xs:attribute name="Files" />
                    <xs:attribute name="ManagedAssemblies" />
                    <xs:attribute name="NativeAssemblies" />
                    <xs:attribute name="OutputAssemblies" />
                    <xs:attribute name="OutputDeploymentManifestEntryPoint" />
                    <xs:attribute name="OutputEntryPoint" />
                    <xs:attribute name="OutputFiles" />
                    <xs:attribute name="PublishFiles" />
                    <xs:attribute name="SatelliteAssemblies" />
                    <xs:attribute name="TargetCulture" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveNativeReference" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalSearchPaths" use="required" />
                    <xs:attribute name="ContainedComComponents" />
                    <xs:attribute name="ContainedLooseEtcFiles" />
                    <xs:attribute name="ContainedLooseTlbFiles" />
                    <xs:attribute name="ContainedPrerequisiteAssemblies" />
                    <xs:attribute name="ContainedTypeLibraries" />
                    <xs:attribute name="ContainingReferenceFiles" />
                    <xs:attribute name="NativeReferences" use="required" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveNonMSBuildProjectOutput" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="PreresolvedProjectOutputs" />
                    <xs:attribute name="ProjectReferences" use="required" />
                    <xs:attribute name="ResolvedOutputPaths" />
                    <xs:attribute name="UnresolvedProjectReferences" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="ResolveVCProjectOutput" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Configuration" />
                    <xs:attribute name="Override" />
                    <xs:attribute name="ProjectReferences" use="required" />
                    <xs:attribute name="ResolvedImportLibraryPaths" />
                    <xs:attribute name="ResolvedOutputPaths" />
                    <xs:attribute name="SolutionFile" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="SGen" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="BuildAssemblyName" use="required" />
                    <xs:attribute name="BuildAssemblyPath" use="required" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="References" />
                    <xs:attribute name="SerializationAssembly" />
                    <xs:attribute name="ShouldGenerateSerializer" use="required" type="msb:boolean" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="UseProxyTypes" use="required" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="SignFile" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="CertificateThumbprint" use="required" />
                    <xs:attribute name="SigningTarget" use="required" />
                    <xs:attribute name="TimestampUrl" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Touch" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AlwaysCreate" type="msb:boolean" />
                    <xs:attribute name="Files" use="required" />
                    <xs:attribute name="ForceTouch" type="msb:boolean" />
                    <xs:attribute name="Time" />
                    <xs:attribute name="TouchedFiles" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="UnregisterAssembly" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="AssemblyListFile" />
                    <xs:attribute name="TypeLibFiles" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="UpdateManifest" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ApplicationManifest" use="required" />
                    <xs:attribute name="ApplicationPath" use="required" />
                    <xs:attribute name="InputManifest" use="required" />
                    <xs:attribute name="OutputManifest" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Vbc" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AddModules" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CodePage" />
                    <xs:attribute name="DebugType" />
                    <xs:attribute name="DefineConstants" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="DisabledWarnings" />
                    <xs:attribute name="DocumentationFile" />
                    <xs:attribute name="EmitDebugInformation" type="msb:boolean" />
                    <xs:attribute name="ErrorReport" />
                    <xs:attribute name="FileAlignment" />
                    <xs:attribute name="GenerateDocumentation" type="msb:boolean" />
                    <xs:attribute name="Imports" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="NoConfig" type="msb:boolean" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="NoStandardLib" type="msb:boolean" />
                    <xs:attribute name="NoWarnings" type="msb:boolean" />
                    <xs:attribute name="Optimize" type="msb:boolean" />
                    <xs:attribute name="OptionCompare" />
                    <xs:attribute name="OptionExplicit" type="msb:boolean" />
                    <xs:attribute name="OptionStrict" type="msb:boolean" />
                    <xs:attribute name="OptionStrictType" />
                    <xs:attribute name="OptionInfer" type="msb:boolean" />
                    <xs:attribute name="OutputAssembly" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="References" />
                    <xs:attribute name="RemoveIntegerChecks" type="msb:boolean" />
                    <xs:attribute name="Resources" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="RootNamespace" />
                    <xs:attribute name="SdkPath" />
                    <xs:attribute name="Sources" />
                    <xs:attribute name="TargetCompactFramework" type="msb:boolean" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="UseHostCompilerIfAvailable" type="msb:boolean" />
                    <xs:attribute name="Utf8Output" type="msb:boolean" />
                    <xs:attribute name="Verbosity" />
                    <xs:attribute name="WarningsAsErrors" />
                    <xs:attribute name="WarningsNotAsErrors" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="VCBuild" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AdditionalLinkLibraryPaths" />
                    <xs:attribute name="AdditionalOptions" />
                    <xs:attribute name="Clean" type="msb:boolean" />
                    <xs:attribute name="Configuration" />
                    <xs:attribute name="Override" />
                    <xs:attribute name="Platform" />
                    <xs:attribute name="Projects" use="required" />
                    <xs:attribute name="Rebuild" type="msb:boolean" />
                    <xs:attribute name="SolutionFile" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="UseEnvironment" type="msb:boolean" />
                    <!-- OBSOLETE: Will be removed in a future version. Use UseEnvironment instead -->
                    <xs:attribute name="UserEnvironment" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Warning" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="Code" />
                    <xs:attribute name="HelpKeyword" />
                    <xs:attribute name="Text" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="WriteLinesToFile" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="File" use="required" />
                    <xs:attribute name="Lines" />
                    <xs:attribute name="Overwrite" type="msb:boolean" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CreateJSharpManifestResourceName" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="ResourceFiles" use="required" />
                    <xs:attribute name="RootNamespace" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="Vjc" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AdditionalLibPaths" />
                    <xs:attribute name="AddModules" />
                    <xs:attribute name="BaseAddress" />
                    <xs:attribute name="CodePage" />
                    <xs:attribute name="DebugType" />
                    <xs:attribute name="DefineConstants" />
                    <xs:attribute name="DelaySign" type="msb:boolean" />
                    <xs:attribute name="DisabledWarnings" />
                    <xs:attribute name="DisableExtensions" />
                    <xs:attribute name="DocumentationFile" />
                    <xs:attribute name="EmitDebugInformation" type="msb:boolean" />
                    <xs:attribute name="FileAlignment" />
                    <xs:attribute name="Jcpa" />
                    <xs:attribute name="KeyContainer" />
                    <xs:attribute name="KeyFile" />
                    <xs:attribute name="LinkResources" />
                    <xs:attribute name="MainEntryPoint" />
                    <xs:attribute name="NoConfig" type="msb:boolean" />
                    <xs:attribute name="NoLogo" type="msb:boolean" />
                    <xs:attribute name="Optimize" type="msb:boolean" />
                    <xs:attribute name="OutputAssembly" />
                    <xs:attribute name="References" />
                    <xs:attribute name="Resources" />
                    <xs:attribute name="ResponseFiles" />
                    <xs:attribute name="SecureScoping" type="msb:boolean" />
                    <xs:attribute name="Sources" />
                    <xs:attribute name="TargetType" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="Utf8Output" type="msb:boolean" />
                    <xs:attribute name="WarningLevel" />
                    <xs:attribute name="Win32Icon" />
                    <xs:attribute name="Win32Resource" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="VjsResGen" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="OutputResx" />
                    <xs:attribute name="Sources" use="required" />
                    <xs:attribute name="Wildcards" />
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
    <xs:element name="CodeAnalysis" substitutionGroup="msb:Task">
        <xs:complexType>
            <xs:complexContent>
                <xs:extension base="msb:TaskType">
                    <xs:attribute name="AlternativeToolName" />
                    <xs:attribute name="AnalysisTimeout" />
                    <xs:attribute name="ApplyLogFileXsl" type="msb:boolean" />
                    <xs:attribute name="Assemblies" />
                    <xs:attribute name="ConsoleXsl" />
                    <xs:attribute name="Culture" />
                    <xs:attribute name="DependentAssemblyPaths" />
                    <xs:attribute name="Dictionaries" />
                    <xs:attribute name="FilesWritten" />
                    <xs:attribute name="ForceOutput" type="msb:boolean"/>
                    <xs:attribute name="GenerateSuccessFile" type="msb:boolean" />
                    <xs:attribute name="IgnoreInvalidTargets" type="msb:boolean" />
                    <xs:attribute name="IgnoreGeneratedCode" type="msb:boolean" />
                    <xs:attribute name="Imports" />
                    <xs:attribute name="LogFile" />
                    <xs:attribute name="LogFileXsl" />
                    <xs:attribute name="OutputToConsole" type="msb:boolean" />
                    <xs:attribute name="OverrideRuleVisibilities" type="msb:boolean" />
                    <xs:attribute name="PlatformPath" />
                    <xs:attribute name="Project" />
                    <xs:attribute name="Quiet" type="msb:boolean" />
                    <xs:attribute name="References" />
                    <xs:attribute name="RuleAssemblies" />
                    <xs:attribute name="Rules" />
                    <xs:attribute name="SaveMessagesToReport" />
                    <xs:attribute name="SearchGlobalAssemblyCache" type="msb:boolean" />
                    <xs:attribute name="Summary" type="msb:boolean" />
                    <xs:attribute name="SuccessFile" type="msb:boolean" />
                    <xs:attribute name="Timeout" />
                    <xs:attribute name="TreatWarningsAsErrors" type="msb:boolean" />
                    <xs:attribute name="ToolPath" />
                    <xs:attribute name="UpdateProject" type="msb:boolean" />                    
                </xs:extension>
            </xs:complexContent>
        </xs:complexType>
    </xs:element>
</xs:schema>
