/// <summary>
        ///
        /// </summary>
        /// <param name="rfTagfield"></param>
        protected RfTagField[] AddFieldStructure(RfTagField[] rfTagfield)
        {
            RfTagField[] newRfTagfield = null;

            // for the first time we have to init the list
            if (null == rfTagfield)
            {
                // first tag field
                newRfTagfield    = new RfTagField[1];
                newRfTagfield[0] = new RfTagField();
            }
            else
            {
                // Create a new list one element longer than the old one
                newRfTagfield = new RfTagField[rfTagfield.Length + 1];
                for (int pos = 0; pos < rfTagfield.Length; pos++)
                {
                    newRfTagfield[pos] = rfTagfield[pos];
                }
                // Yippieh! Create a new tagFieldList
                newRfTagfield[rfTagfield.Length] = new RfTagField();
            }
            return(newRfTagfield);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="reportReader"></param>
        /// <param name="endXMLTag"></param>
        protected RfTagField ParseReportForTagFields(XmlTextReader reportReader, string endXMLTag)
        {
            RfTagField newTagField = new RfTagField();

            while (reportReader.Read() &&
                   !(reportReader.Name == endXMLTag && reportReader.NodeType == XmlNodeType.EndElement))
            {
                if (reportReader.NodeType == XmlNodeType.Element)
                {
                    if (reportReader.Name == "bank")
                    {
                        if (reportReader.Read())
                        {
                            if (XmlNodeType.Text == reportReader.NodeType)
                            {
                                newTagField.TagFieldBank = reportReader.Value;
                            }
                        }
                    }
                    else if (reportReader.Name == "startAddress")
                    {
                        if (reportReader.Read())
                        {
                            if (XmlNodeType.Text == reportReader.NodeType)
                            {
                                newTagField.TagFieldAddress = reportReader.Value;
                            }
                        }
                    }
                    else if (reportReader.Name == "fieldName")
                    {
                        if (reportReader.Read())
                        {
                            if (XmlNodeType.Text == reportReader.NodeType)
                            {
                                newTagField.TagFieldName = reportReader.Value;
                            }
                        }
                    }
                    else if (reportReader.Name == "dataLength")
                    {
                        if (reportReader.Read())
                        {
                            if (XmlNodeType.Text == reportReader.NodeType)
                            {
                                newTagField.TagFieldLength = reportReader.Value;
                            }
                        }
                    }
                    else if (reportReader.Name == "data")
                    {
                        if (reportReader.Read())
                        {
                            if (XmlNodeType.Text == reportReader.NodeType)
                            {
                                newTagField.TagFieldData = reportReader.Value;
                            }
                        }
                    }
                }
            }
            return(newTagField);
        }