//Constructor 2 public FieldTemplate(XElement fieldTemplateXml) { //Input XML: <fieldTemplate Name="RecordType" Type="AlphaNum" StartPosition="13" Size="2" DecimalPlaces="0" /> string fieldName = ParserUtilities.GetCompulsoryAttributeValue(fieldTemplateXml, Fields.Name); FieldType fieldType = ParserUtilities.GetFieldType(fieldTemplateXml, Fields.Type); int startPosition = ParserUtilities.GetAttributeNumericValue(fieldTemplateXml, Fields.StartPosition); int fieldSize = ParserUtilities.GetAttributeNumericValue(fieldTemplateXml, Fields.Size); string decimalPlacesStr = ParserUtilities.GetNullableAttributeValue(fieldTemplateXml, Fields.DecimalPlaces); int decimalPlaces = 0; if (!String.IsNullOrEmpty(decimalPlacesStr)) { decimalPlaces = Int32.Parse(decimalPlacesStr); } this.PopulateAllProperties(fieldName, fieldType, startPosition, fieldSize, decimalPlaces); }
private void InitializeLineTemplateFromXml(XElement lineTemplaeXml) { //Input XML: //<lineTemplate Name="RNA_RecType01" Length="1190"> // <fields> // <fieldTemplate Name="RecordType" Type="AlphaNum" StartPosition="13" Size="2" DecimalPlaces="0" /> // <fieldTemplate Name="SourceInd" Type="AlphaNum" StartPosition="15" Size="1" DecimalPlaces="0" /> // </fields> //</lineTemplate> int lineSize = ParserUtilities.GetAttributeNumericValue(lineTemplaeXml, Fields.Length); string templateName = ParserUtilities.GetCompulsoryAttributeValue(lineTemplaeXml, Fields.Name); this.PopulateInitialObjectProperties(lineSize, templateName); foreach (XElement fieldXml in lineTemplaeXml.Element(Fields.XmlFields).Elements(Fields.XmlFieldTemplate)) { FieldTemplate fieldTemplate = new FieldTemplate(fieldXml); this.AddFieldTemplate(fieldTemplate); } }