Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Валидность XML-документа


Автор: under_sun 5.3.2008, 22:03
Приветсвую.
Необходимо проверить xml-документ на соответствие схеме (file.xml, file.xsd):
Код

XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
settings.ValidationEventHandler += new ValidationEventHandler(XMLValidationCallBack);

XmlReader xmlReader = null;

try
{
    xmlReader = XmlReader.Create("file.xml", settings);
    while (xmlReader.Read())
    {
         //...
     }
}
catch (FileNotFoundException e)
{
    MessageBox.Show(e.Message);
}
finally
{
    if (xmlReader != null)
    xmlReader.Close();
 }
//...
private void XMLValidationCallBack(object sender, ValidationEventArgs args)
{
    MessageBox.Show(args.Message);
}

Месторасположение схемы указано в file.xml так:
 
Код

<protocols xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file.xsd">

Подскажите, что не так? Может есть альтернативный способ?

Внимание! Вопрос решен - это правильно работающий код.

Автор: under_sun 7.3.2008, 16:23
Вопрос решен. 
Надо было указать флаг ProcessSchemaLocation (строчка 3).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)