System.Xml.XmlDocument.GetDefaultAttribute C# (CSharp) Method

GetDefaultAttribute() private method

private GetDefaultAttribute ( XmlElement elem, string attrPrefix, string attrLocalname, string attrNamespaceURI ) : XmlAttribute
elem XmlElement
attrPrefix string
attrLocalname string
attrNamespaceURI string
return XmlAttribute
        internal XmlAttribute GetDefaultAttribute(XmlElement elem, string attrPrefix, string attrLocalname, string attrNamespaceURI)
        {
            SchemaInfo schInfo = DtdSchemaInfo;
            SchemaElementDecl ed = GetSchemaElementDecl(elem);
            if (ed != null && ed.AttDefs != null)
            {
                IDictionaryEnumerator attrDefs = ed.AttDefs.GetEnumerator();
                while (attrDefs.MoveNext())
                {
                    SchemaAttDef attdef = (SchemaAttDef)attrDefs.Value;
                    if (attdef.Presence == SchemaDeclBase.Use.Default ||
                        attdef.Presence == SchemaDeclBase.Use.Fixed)
                    {
                        if (attdef.Name.Name == attrLocalname)
                        {
                            if ((schInfo.SchemaType == SchemaType.DTD && attdef.Name.Namespace == attrPrefix) ||
                                 (schInfo.SchemaType != SchemaType.DTD && attdef.Name.Namespace == attrNamespaceURI))
                            {
                                //find a def attribute with the same name, build a default attribute and return
                                XmlAttribute defattr = PrepareDefaultAttribute(attdef, attrPrefix, attrLocalname, attrNamespaceURI);
                                return defattr;
                            }
                        }
                    }
                }
            }
            return null;
        }