#@ template language="C#" hostspecific="True" #>
<#@ include file="Utility.tt" #>
<#@ assembly name="System.Xml" #>
<#@ import namespace="System.Xml" #>
<#
Init();
#>
// Generated on <#= DateTime.Now.ToString() #>
// from <#= _mappingFile #>
namespace <#=_namespace#>
{
public partial class <#=_className#>
{
/// Property constants for <#=_className#>
public class Properties
{
private Properties() { }
<#
foreach (XmlElement element in _classElements)
{
if (element.Attributes["name"] != null)
{
string propertyName = element.Attributes["name"].Value;
#>
/// Constant for <#=_className#>.<#=propertyName#> (="<#=propertyName#>")
public const string <#=propertyName#> = "<#=propertyName#>";
<#
}
}
#>
}
}
}
<#+
private string _mappingFile;
private XmlDocument _mapping;
private string _fullClassName;
private string _className;
private string _namespace;
private XmlNodeList _classElements;
private void Init()
{
_mappingFile = GetCommandLineProperty("mappingFile");
_mapping = new XmlDocument();
_mapping.Load(_mappingFile);
_fullClassName = _mapping.SelectSingleNode("//*[local-name()='class']/@name").Value;
_fullClassName = _fullClassName.Split(',')[0];
string[] names = _fullClassName.Split('.');
_className = names[names.Length - 1];
_namespace = _fullClassName.Substring(0, _fullClassName.Length - _className.Length - 1);
_classElements = _mapping.SelectNodes("//*[local-name()='class']/*");
}
#>