/// <summary>
        /// Verify whether this structure is expected
        /// </summary>
        /// <param name="complexValue">A MA complex type</param>
        /// <returns></returns>
        public bool Verify(ComplexType complexValue)
        {
            // Get the structure by using field name
            ComplexType value;

            if (!MAVerifyUtil.GetFieldValue <ComplexType>(FieldName, complexValue, out value))
            {
                return(false);
            }

            // Verify the verifyList
            if (VerifyItemList != null)
            {
                if (!VerifyItemList.Verify(value))
                {
                    return(false);
                }
            }

            // Verify sub-structures
            if (Structures != null)
            {
                foreach (StructureField structure in Structures)
                {
                    if (!structure.Verify(value))
                    {
                        return(false);
                    }
                }
            }

            // Verify arrays in this structure
            if (Arrays != null)
            {
                foreach (ArrayField array in Arrays)
                {
                    if (!array.Verify(value))
                    {
                        return(false);
                    }
                }
            }
            return(true);
        }
        /// <summary>
        /// Verify whether this array is expected
        /// </summary>
        /// <param name="complexValue">MMA complex value</param>
        /// <returns></returns>
        public bool Verify(ComplexType complexValue)
        {
            // Get the array by using field name
            Array elements;

            if (!MAVerifyUtil.GetFieldValue <Array>(FieldName, complexValue, out elements))
            {
                return(false);
            }
            if (elements == null)
            {
                return(false);
            }
            // Verify array items
            foreach (ArrayItem item in ArrayItems)
            {
                if (!ContainValidItem(elements, item))
                {
                    return(false);
                }
            }
            return(true);
        }
 /// <summary>
 /// Verify whether value apply this verify item
 /// </summary>
 /// <param name="complexValue">MMA complexValue</param>
 /// <returns></returns>
 public bool Verify(Object value)
 {
     return(MAVerifyUtil.VerifyValue(value, this));
 }