internal override Exception TryParseValue(string s, XmlNameTable nameTable, IXmlNamespaceResolver nsmgr, out object typedValue)
{
Exception exception;
typedValue = null;
if (s == null || s.Length == 0)
{
return new XmlSchemaException(SR.Sch_EmptyAttributeValue, string.Empty);
}
exception = qnameFacetsChecker.CheckLexicalFacets(ref s, this);
if (exception != null) goto Error;
XmlQualifiedName qname = null;
try
{
string prefix;
qname = XmlQualifiedName.Parse(s, nsmgr, out prefix);
}
catch (ArgumentException e)
{
exception = e;
goto Error;
}
catch (XmlException e)
{
exception = e;
goto Error;
}
exception = qnameFacetsChecker.CheckValueFacets(qname, this);
if (exception != null) goto Error;
typedValue = qname;
return null;
Error:
return exception;
}
}