ATMLSchemaLibrary.managers.SchemaManager.ValidateElement C# (CSharp) Method

ValidateElement() public static method

public static ValidateElement ( XmlSchemaElement element, object value, SchemaValidationResult errors ) : bool
element System.Xml.Schema.XmlSchemaElement
value object
errors SchemaValidationResult
return bool
        public static bool ValidateElement( XmlSchemaElement element, object value, SchemaValidationResult errors )
        {
            bool isValid = true;
            XmlSchemaType schemaType = element.ElementSchemaType;
            bool isNillable = element.IsNillable;
            string defaultValue = element.DefaultValue;
            decimal minOccurrs = element.MinOccurs;
            decimal maxOccurrs = element.MaxOccurs;
            //SchemaValidationResult errors = new SchemaValidationResult(element.Name );

            var complexType = schemaType as XmlSchemaComplexType;
            var simpleType = schemaType as XmlSchemaSimpleType;

            if (minOccurrs > 0 && value == null && !isNillable)
            {
                isValid = false;
                errors.AddError( string.Format( "{0} cannot be null", element.Name ) );
            }
            else if (complexType != null)
            {
                var collection = value as ICollection;
                if (collection != null)
                {
                    XmlSchemaParticle contentTypeParticle = complexType.ContentTypeParticle;
                    XmlSchemaParticle particle = complexType.Particle;
                    XmlSchemaContentModel model = complexType.ContentModel;
                    var sequence = particle as XmlSchemaSequence;
                    if (sequence != null)
                    {
                        ProcessSequence( errors, sequence, collection, minOccurrs );
                    }
                }
            }
            else if (simpleType != null)
            {
                var union = simpleType.Content as XmlSchemaSimpleTypeUnion;
                var list = simpleType.Content as XmlSchemaSimpleTypeList;
                var restriction = simpleType.Content as XmlSchemaSimpleTypeRestriction;

                if (restriction != null)
                {
                    XmlQualifiedName qname = simpleType.BaseXmlSchemaType.QualifiedName;
                    String typeName = qname.Name;
                    isValid &= ProcessRestrictions( value == null ? null : value.ToString(), errors, restriction,
                                                    typeName, simpleType.Name );
                }

                foreach (XmlSchemaObject contraint in element.Constraints)
                {
                    var key = contraint as XmlSchemaKey;
                    var keyRef = contraint as XmlSchemaKeyref;
                    var unique = contraint as XmlSchemaUnique;
                    if (key != null)
                    {
                    }
                    if (keyRef != null)
                    {
                    }
                    if (unique != null)
                    {
                    }
                }
            }

            XmlTypeCode tc = schemaType.TypeCode;
            //validationResult.AddResult( errors );
            return isValid;
        }