private static XmlReader CreateValidatingXmlReader (XmlReader reader, XmlReaderSettings settings)
{
#if NET_2_1 && !MONOTOUCH
return reader;
#else
XmlValidatingReader xvr = null;
switch (settings.ValidationType) {
// Auto and XDR are obsoleted in 2.0 and therefore ignored.
default:
return reader;
case ValidationType.DTD:
xvr = new XmlValidatingReader (reader);
xvr.XmlResolver = settings.XmlResolver;
xvr.ValidationType = ValidationType.DTD;
break;
case ValidationType.Schema:
return new XmlSchemaValidatingReader (reader, settings);
}
// Actually I don't think they are treated in DTD validation though...
if ((settings.ValidationFlags & XmlSchemaValidationFlags.ProcessIdentityConstraints) == 0)
throw new NotImplementedException ();
//if ((settings.ValidationFlags & XmlSchemaValidationFlags.ProcessInlineSchema) != 0)
// throw new NotImplementedException ();
//if ((settings.ValidationFlags & XmlSchemaValidationFlags.ProcessSchemaLocation) != 0)
// throw new NotImplementedException ();
//if ((settings.ValidationFlags & XmlSchemaValidationFlags.ReportValidationWarnings) == 0)
// throw new NotImplementedException ();
return xvr != null ? xvr : reader;
#endif
}