![]() |
|
Модераторы: diadiavova |
![]()
|
|
| un8gbx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 12.10.2005 Где: Montreal Репутация: нет Всего: нет |
Я использую XSD схему для валидации XML файлов, для этого я использую MSXML 4.0 SP2 парсер и делаю это так:
В XML файле ставлю атрибуты, что бы сказать парсеру где схема расположена: <ISA xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="I:\TEST\XMLEDI\shemas\SCH850.xsd"> <ISA01>00</ISA01> <ISA02></ISA02> <ISA03>00</ISA03> <ISA04></ISA04> <ISA05>ZZ</ISA05> </ISA> После этого ставлю атрибут validateOnParse = TRUE, и делаю load, все работает прекрасно, ошибки обнаружтваются. Проблема в том, что если схема на котороую указывает xsi:noNamespaceSchemaLocation="I:\TEST\XMLEDI\shemas\SCH850.xsd" несуществует, ну нет такого файла, то ни какой ошибки не происходит, load возврашает что все ОК и ни какого исключения не кидается. Хотя для меня это ошибка, схемы то нет ! Как заставить парсер проверять наличие схемы ??? Я конечьно могу програмно взять аттрибут xsi:noNamespaceSchemaLocation и проверить существование фала, но некрасиво както. |
|||
|
||||
| 3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 10 Всего: 24 |
Не совсем уверен, но вроде это решеается по средствам установки атрибута schemaLocation
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
| un8gbx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 12.10.2005 Где: Montreal Репутация: нет Всего: нет |
Я как понимаю, что xsi:SchemaLocation делает то же саомае что и xsi:noNamespaceSchemaLocation только с использованием namesapace что впринципе не нужно в моем случае, вот ссылка где это объясняется.
http://msdn.microsoft.com/library/default....1fb0f5959bd.asp вот вторая ссылка, тут говорится почему игнорируется http://msdn.microsoft.com/library/default....1b0de0fca8c.asp Чесно говоря не понимаю логики которой следует микрософт, если схема УКАЗАНА и НЕ НАЙДЕНА, то это не ошибка, ихнее предложение загружать их в каш, то же странно, я же не знаю какая схема используется, пока не открою XML фаел, не грузить же их все, уменя уже набралось 8 штук, а дальше больше. Сранно однако. |
|||
|
||||
| Ignat |
|
|||
![]() Флудератор ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4030 Регистрация: 19.4.2004 Где: غيليندزيك مدينة Репутация: 2 Всего: 73 |
un8gbx, а почему бы не использовать не MS парсер? E.g. SAX.
-------------------- Теперь при чем :P |
|||
|
||||
| un8gbx |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 12.10.2005 Где: Montreal Репутация: нет Всего: нет |
А что это решит ? И нет ли там тех же проблем.
Я как понимаю SAX это событийный парсер, что мне он очень удобно, удобней загрузить его весь и анализировать, да и на MSXML уже написана и работает куча кода. |
|||
|
||||
![]()
|
| Правила форума "XML/XSLT" | |
|
|
Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась. Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение. Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел Желаем удачи в Вашем деле! Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | XML, XSL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |