Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Валидность XML-документа, проверка на соответствие схеме 
V
    Опции темы
under_sun
Дата 5.3.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 3.10.2007
Где: Ебург

Репутация: нет
Всего: 17



Приветсвую.
Необходимо проверить 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:17
--------------------
TMTOWTDI
PM MAIL ICQ   Вверх
under_sun
Дата 7.3.2008, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 3.10.2007
Где: Ебург

Репутация: нет
Всего: 17



Вопрос решен. 
Надо было указать флаг ProcessSchemaLocation (строчка 3).
--------------------
TMTOWTDI
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0386 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.