System.Xml.Schema.XmlSchemaValidator.GetSubstitutionGroupHead C# (CSharp) Méthode

GetSubstitutionGroupHead() private méthode

private GetSubstitutionGroupHead ( XmlQualifiedName member ) : XmlSchemaElement
member System.Xml.XmlQualifiedName
Résultat XmlSchemaElement
        private XmlSchemaElement GetSubstitutionGroupHead(XmlQualifiedName member)
        {
            XmlSchemaElement memberElem = _compiledSchemaInfo.GetElement(member);
            if (memberElem != null)
            {
                XmlQualifiedName head = memberElem.SubstitutionGroup;
                if (!head.IsEmpty)
                {
                    XmlSchemaElement headElem = _compiledSchemaInfo.GetElement(head);
                    if (headElem != null)
                    {
                        if ((headElem.BlockResolved & XmlSchemaDerivationMethod.Substitution) != 0)
                        {
                            SendValidationEvent(SR.Sch_SubstitutionNotAllowed, new string[] { member.ToString(), head.ToString() });
                            return null;
                        }
                        if (!XmlSchemaType.IsDerivedFrom(memberElem.ElementSchemaType, headElem.ElementSchemaType, headElem.BlockResolved))
                        {
                            SendValidationEvent(SR.Sch_SubstitutionBlocked, new string[] { member.ToString(), head.ToString() });
                            return null;
                        }
                        return headElem;
                    }
                }
            }
            return null;
        }