protected internal override void Read(XmlSchemaObject obj)
 {
     var element = (XmlSchemaElement) obj;
     ElementName = element.Name;
     Type = element.SchemaTypeName;
     base.Read(obj);
 }
        protected internal override void Read(XmlSchemaObject obj)
        {
            var element = (XmlSchemaElement) obj;
            Name = element.Name;
            MinOccurs = element.MinOccursString != null ? element.MinOccurs : (decimal?) null;
            Type = element.SchemaTypeName;

            if (element.SchemaTypeName.IsEmpty)
            {
                var simpleType = element.SchemaType as XmlSchemaSimpleType;

                if (simpleType != null)
                {
                    var restriction = simpleType.Content as XmlSchemaSimpleTypeRestriction;

                    if (restriction != null)
                    {
                        Type = restriction.BaseTypeName;
                    }
                }
            }

            IsNillable = element.IsNillable;
            base.Read(obj);
        }