private void ValidateAttributes()
{
_attributeCount = _coreReaderAttributeCount = _coreReader.AttributeCount;
AttributePSVIInfo attributePSVI;
int attIndex = 0;
bool attributeInvalid = false;
if (_coreReader.MoveToFirstAttribute())
{
do
{
string localName = _coreReader.LocalName;
string ns = _coreReader.NamespaceURI;
attributePSVI = AddAttributePSVI(attIndex);
attributePSVI.localName = localName;
attributePSVI.namespaceUri = ns;
if ((object)ns == (object)_nsXmlNs)
{
attIndex++;
continue;
}
attributePSVI.typedAttributeValue = _validator.ValidateAttribute(localName, ns, _valueGetter, attributePSVI.attributeSchemaInfo);
if (!attributeInvalid)
{
attributeInvalid = attributePSVI.attributeSchemaInfo.Validity == XmlSchemaValidity.Invalid;
}
attIndex++;
} while (_coreReader.MoveToNextAttribute());
}
_coreReader.MoveToElement();
if (attributeInvalid)
{ //If any of the attributes are invalid, Need to report element's validity as invalid
_xmlSchemaInfo.Validity = XmlSchemaValidity.Invalid;
}
_validator.GetUnspecifiedDefaultAttributes(_defaultAttributes, true);
_attributeCount += _defaultAttributes.Count;
}