/// <summary>
        /// Retrieves the String representation of the raw bytes.
        /// The string will include the type and the size of the element parsed. </summary>
        /// <param name="data"> array of bytes containing data result from a dlms-get </param>
        /// <returns> A String that represents the data </returns>
        /// <exception cref="DlmsException"> </exception>
        public static DlmsItem getDlmsItem(byte[] data)
        {
            verify(data);
            DlmsType type          = DlmsType.fromTag(data[0]);
            DlmsItem item          = new DlmsItem(type, getString(data));
            int      numberOfItems = getNumberOfItems(type, data);

            for (int i = 0; i < numberOfItems; ++i)
            {
                parseItems(item, getNextData(data));
            }
            return(item);
        }
        private static byte[] parseItems(DlmsItem parent, byte[] data)
        {
            if (data.Length == 0)
            {
                return(data);
            }
            DlmsType type = DlmsType.fromTag(data[0]);
            DlmsItem item = new DlmsItem(type, getString(data));

            parent.addChildren(item);
            int numberOfItems = getNumberOfItems(type, data);

            for (int i = 0; i < numberOfItems; ++i)
            {
                parseItems(item, getNextData(data));
            }
            return(data);
        }
 public void addChildren(DlmsItem item)
 {
     children.Add(item);
 }