<!-- *********************************************************************************************** Microsoft.ServiceModel.targets WARNING: DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have created a backup copy. Incorrect changes to this file will make it impossible to load or build your projects from the command-line or the IDE. Copyright (C) Microsoft Corporation. All rights reserved. *********************************************************************************************** --> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <UsingTask TaskName="Microsoft.Build.Tasks.Xsd.XsdTypeImporterTask" AssemblyName="XsdBuildTask, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"/> <!-- sub build target, preceeding XsdCodeGen --> <Target Name="PreXsdCodeGen" BeforeTargets="CoreCompile"> <ItemGroup> <XsdCodeGenInputXsdFiles Include="@(None)" Condition=" '%(None.Extension)' == '.xsd' and '%(None.Generator)' == '' " /> </ItemGroup> <PropertyGroup> <XsdCodeGenPreCondition>False</XsdCodeGenPreCondition> <XsdCodeGenPreCondition Condition="'$(TargetFrameworkVersion)' != 'v2.0' and '$(TargetFrameworkVersion)' != 'v3.0' and '$(TargetFrameworkVersion)' != 'v3.5' and '$(TargetFrameworkVersion)' != 'v4.0' and ( '$(TargetFrameworkIdentifier)' == '.NETFramework' or '$(TargetFrameworkIdentifier)' == 'Silverlight' ) and '$(XsdCodeGenEnabled)' == 'True' and '@(XsdCodeGenInputXsdFiles)' != '' ">True</XsdCodeGenPreCondition> </PropertyGroup> <CallTarget Targets="CleanXsdCodeGen" Condition=" '$(XsdCodeGenPreCondition)' != 'True' " > </CallTarget> </Target> <!-- main build target --> <Target Name="XsdCodeGen" DependsOnTargets="ResolveReferences" AfterTargets="PreXsdCodeGen" Condition=" '$(XsdCodeGenPreCondition)' == 'True' "> <!-- will show in VS output window, for discoverability --> <Message Importance="high" Text="Generating code from XSD: InputXsdFiles=@(XsdCodeGenInputXsdFiles)"/> <PropertyGroup> <!-- assign default values --> <XsdCodeGenSerializerMode Condition=" '$(XsdCodeGenSerializerMode)' == '' " >XmlSerializer</XsdCodeGenSerializerMode> <XsdCodeGenReuseTypesFlag Condition=" '$(XsdCodeGenReuseTypesFlag)' == '' " >True</XsdCodeGenReuseTypesFlag> <XsdCodeGenReuseTypesMode Condition=" '$(XsdCodeGenReuseTypesMode)' == '' " >All</XsdCodeGenReuseTypesMode> <XsdCodeGenNamespaceMappings Condition=" '$(XsdCodeGenNamespaceMappings)' == '' and '$(Language)' == 'C#' and '$(RootNamespace)' != '' " >*, $(RootNamespace).ContractTypes</XsdCodeGenNamespaceMappings> <XsdCodeGenNamespaceMappings Condition=" '$(XsdCodeGenNamespaceMappings)' == '' " >*, ContractTypes</XsdCodeGenNamespaceMappings> <XsdCodeGenCollectionTypes Condition=" '$(XsdCodeGenCollectionTypes)' == '' " >System.Array;System.Collections.Generic.Dictionary`2</XsdCodeGenCollectionTypes> <XsdCodeGenImportXmlTypes Condition=" '$(XsdCodeGenImportXmlTypes)' == '' " >True</XsdCodeGenImportXmlTypes> <XsdCodeGenGenerateSerializableTypes Condition=" '$(XsdCodeGenGenerateSerializableTypes)' == '' " >True</XsdCodeGenGenerateSerializableTypes> <XsdCodeGenGenerateDataTypesOnly Condition=" '$(XsdCodeGenGenerateDataTypesOnly)' == '' " >False</XsdCodeGenGenerateDataTypesOnly> <XsdCodeGenGenerateInternalTypes Condition=" '$(XsdCodeGenGenerateInternalTypes)' == '' " >False</XsdCodeGenGenerateInternalTypes> <XsdCodeGenEnableDataBinding Condition=" '$(XsdCodeGenEnableDataBinding)' == '' " >False</XsdCodeGenEnableDataBinding> <!-- calc dynamic values --> <XsdCodeGenSupportFx35DataTypes Condition="'$(XsdCodeGenSupportFx35DataTypes)' == '' and '$(TargetFrameworkVersion)' == 'v2.0'">False</XsdCodeGenSupportFx35DataTypes> <XsdCodeGenSupportFx35DataTypes Condition="'$(XsdCodeGenSupportFx35DataTypes)' == '' and '$(TargetFrameworkVersion)' == 'v3.0'">False</XsdCodeGenSupportFx35DataTypes> <XsdCodeGenSupportFx35DataTypes Condition="'$(XsdCodeGenSupportFx35DataTypes)' == ''">True</XsdCodeGenSupportFx35DataTypes> </PropertyGroup> <!-- calc references for type reusing, resolve their paths from @(ReferencePath) from 'ResolveReferences' build target --> <ItemGroup> <XsdCodeGenReferencesResolved Include="@(ReferencePath)" Condition=" '$(XsdCodeGenReuseTypesFlag)' == 'True' and '$(XsdCodeGenReuseTypesMode)' == 'All' " /> </ItemGroup> <CallTarget Targets="XsdResolveReferencePath" Condition=" '$(XsdCodeGenReuseTypesFlag)' == 'True' and '$(XsdCodeGenReuseTypesMode)' != 'All' " > <Output ItemName="XsdCodeGenReferencesResolved" TaskParameter="TargetOutputs" /> </CallTarget> <!-- will show in VS output window, for discoverability --> <Message Importance="high" Text="Generating code from XSD: References=@(XsdCodeGenReferencesResolved)" /> <!-- set property <MSBuildTargetsVerbose>True</MSBuildTargetsVerbose> to see following messages --> <Message Text="Generating code from XSD: OutputDirectory=$(IntermediateOutputPath)\XsdGeneratedCode" /> <Message Text="Generating code from XSD: Language=$(Language)" /> <Message Text="Generating code from XSD: NamespaceMappings=$(XsdCodeGenNamespaceMappings)" /> <Message Text="Generating code from XSD: SerializerMode=$(XsdCodeGenSerializerMode)" /> <Message Text="Generating code from XSD: CollectionTypes=$(XsdCodeGenCollectionTypes)" /> <Message Text="Generating code from XSD: ExcludedTypes=$(XsdCodeGenExcludedTypes)" /> <Message Text="Generating code from XSD: ImportXmlTypes=$(XsdCodeGenImportXmlTypes)" /> <Message Text="Generating code from XSD: GenerateSerializableTypes=$(XsdCodeGenGenerateSerializableTypes)" /> <Message Text="Generating code from XSD: GenerateInternalTypes=$(XsdCodeGenGenerateInternalTypes)" /> <Message Text="Generating code from XSD: EnableDataBinding=$(XsdCodeGenEnableDataBinding)" /> <Message Text="Generating code from XSD: SupportFx35DataTypes=$(XsdCodeGenSupportFx35DataTypes)" /> <MakeDir Directories="$(IntermediateOutputPath)\XsdGeneratedCode" /> <ItemGroup> <XsdCodeGenGeneratedFile Condition=" '@(XsdCodeGenGeneratedFile)' == '' And '$(Language)' == 'C#' " Include="$(IntermediateOutputPath)\XsdGeneratedCode\GeneratedXsdTypes.cs" /> <XsdCodeGenGeneratedFile Condition=" '@(XsdCodeGenGeneratedFile)' == '' And '$(Language)' == 'VB' " Include="$(IntermediateOutputPath)\XsdGeneratedCode\GeneratedXsdTypes.vb" /> </ItemGroup> <Touch Files="@(XsdCodeGenGeneratedFile)" AlwaysCreate="true" /> <ItemGroup> <Compile Include="@(XsdCodeGenGeneratedFile)" /> <FileWrites Include="@(XsdCodeGenGeneratedFile)" /> </ItemGroup> <XsdTypeImporterTask InputXsdFiles="@(XsdCodeGenInputXsdFiles)" References="@(XsdCodeGenReferencesResolved)" OutputDirectory="$(IntermediateOutputPath)\XsdGeneratedCode" Language="$(Language)" NamespaceMappings="$(XsdCodeGenNamespaceMappings.Split(';'))" SerializerMode="$(XsdCodeGenSerializerMode)" CollectionTypes="$(XsdCodeGenCollectionTypes.Split(';'))" ExcludedTypes="$(XsdCodeGenExcludedTypes.Split(';'))" ImportXmlTypes="$(XsdCodeGenImportXmlTypes)" GenerateSerializableTypes="$(XsdCodeGenGenerateSerializableTypes)" GenerateInternalTypes="$(XsdCodeGenGenerateInternalTypes)" EnableDataBinding="$(XsdCodeGenEnableDataBinding)" SupportFx35DataTypes="$(XsdCodeGenSupportFx35DataTypes)"> </XsdTypeImporterTask> <!-- will show in VS output window, for discoverability --> <Message Importance="high" Text="Generated code from XSD: GeneratedFile=@(XsdCodeGenGeneratedFile)"/> </Target> <!-- sub build target, called by XsdCodeGen --> <Target Name="XsdResolveReferencePath" Outputs="@(XsdCodeGenReferencesResolved)"> <!-- filter @(ReferencePath) (full file path) by $(XsdCodeGenReferences) (file name without extension) --> <WriteLinesToFile File="$(IntermediateOutputPath)\XsdCodeGenTempA.txt" Lines="@(ReferencePath)" Overwrite="True" /> <WriteLinesToFile File="$(IntermediateOutputPath)\XsdCodeGenTempB.txt" Lines="$(XsdCodeGenReferences.Split(';'))" Overwrite="True" /> <Delete Files="$(IntermediateOutputPath)\XsdCodeGenTempC.txt" /> <!-- for /f "tokens=*" %%a in ($(IntermediateOutputPath)\XsdCodeGenTempA.txt) do ( for /f "tokens=*" %%b in ($(IntermediateOutputPath)\XsdCodeGenTempB.txt) do ( if /i "%%~na" EQU "%%~b" ( echo %%a>>"$(IntermediateOutputPath)\XsdCodeGenTempC.txt" ) ) ) --> <Exec Command="for /f %22tokens=*%22 %%a in ($(IntermediateOutputPath)\XsdCodeGenTempA.txt) do ( for /f %22tokens=*%22 %%b in ($(IntermediateOutputPath)\XsdCodeGenTempB.txt) do ( if /i %22%%~na%22 EQU %22%%~b%22 ( echo %%a>>%22$(IntermediateOutputPath)\XsdCodeGenTempC.txt%22 ) ) )" /> <ReadLinesFromFile File="$(IntermediateOutputPath)\XsdCodeGenTempC.txt" > <Output ItemName="XsdCodeGenReferencesResolved" TaskParameter="Lines" /> </ReadLinesFromFile> <Delete Files="$(IntermediateOutputPath)\XsdCodeGenTempA.txt;$(IntermediateOutputPath)\XsdCodeGenTempB.txt;$(IntermediateOutputPath)\XsdCodeGenTempC.txt" /> </Target> <!-- clean build target for XsdCodeGen --> <Target Name="CleanXsdCodeGen" AfterTargets="Clean"> <ItemGroup> <CleanXsdCodeGenFiles Include="$(IntermediateOutputPath)\XsdGeneratedCode\*" /> </ItemGroup> <Delete Files="@(CleanXsdCodeGenFiles)" /> </Target> </Project> |