This might work:
http://www.experts-exchange.com/Programming/Languages/.NET/Visual_CSharp/Q_23387252.html
This works
How to check, at runtime, xml against xsd without saving the xsd file in a local folder?
1: , , , , 2 . , , - , , Xsd , . , , .
public void Xsd_whithout_saved()
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"file.xsd");
string strArquivoInteiro = xmlDoc.OuterXml;
byte[] byteArray = Encoding.ASCII.GetBytes(strArquivoInteiro);
MemoryStream streamXSD = new MemoryStream(byteArray);
streamXSD.Position = 0;
StreamReader readerXsd = new StreamReader(streamXSD);
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationEventHandler += this.MyValidationEventHandler;
settings.ValidationType = ValidationType.Schema;
settings.Schemas.Add(null, XmlReader.Create(readerXsd));
settings.CheckCharacters = true;
XmlReader XmlValidatingReader = XmlReader.Create(@"file.xml", settings);
XmlTextReader Reader = new XmlTextReader(@"file.xsd");
XmlTextReader Reader2 = new XmlTextReader(@"file.xml");
XmlSchema Schema = new XmlSchema();
Schema = XmlSchema.Read(Reader, MyValidationEventHandler);
XmlValidatingReader ValidatingReader = new XmlValidatingReader(Reader2);
ValidatingReader.ValidationType = ValidationType.Schema;
ValidatingReader.Schemas.Add(Schema);
try
{
XmlValidatingReader.Read();
XmlValidatingReader.Close();
ValidatingReader.ValidationEventHandler += MyValidationEventHandler;
while ((ValidatingReader.Read()))
{
}
ValidatingReader.Close();
}
catch (Exception ex)
{
ValidatingReader.Close();
XmlValidatingReader.Close();
}
}