private Exception CheckBuiltInFacets(string s, XmlTypeCode typeCode, bool verifyUri) {
Exception exception = null;
switch (typeCode) {
case XmlTypeCode.AnyUri:
if (verifyUri) {
Uri uri;
exception = XmlConvert.TryToUri(s, out uri);
}
break;
case XmlTypeCode.NormalizedString:
exception = XmlConvert.TryVerifyNormalizedString(s);
break;
case XmlTypeCode.Token:
exception = XmlConvert.TryVerifyTOKEN(s);
break;
case XmlTypeCode.Language:
if (s == null || s.Length == 0) {
return new XmlSchemaException(Res.Sch_EmptyAttributeValue, string.Empty);
}
if (!LanguagePattern.IsMatch(s)) {
return new XmlSchemaException(Res.Sch_InvalidLanguageId, string.Empty);
}
break;
case XmlTypeCode.NmToken:
exception = XmlConvert.TryVerifyNMTOKEN(s);
break;
case XmlTypeCode.Name:
exception = XmlConvert.TryVerifyName(s);
break;
case XmlTypeCode.NCName:
case XmlTypeCode.Id:
case XmlTypeCode.Idref:
case XmlTypeCode.Entity:
exception = XmlConvert.TryVerifyNCName(s);
break;
default:
break;
}
return exception;
}
}