Notes |
|
(0005334)
|
Tolik
|
05-02-2012 06:06
(edited on: 05-02-2012 06:09) |
|
У меня на той же самой версии (вчерашней ночнушке) загрузился без проблем.
Старый ноутбук XP SP2, xerseslib.dll
|
|
|
|
А с прикреплённого к инциденту gpx-трека не падает? |
|
|
(0005336)
|
zed
|
05-02-2012 09:17
|
|
C xerces не падает, a с msxml, да - падает. |
|
|
|
Погляжу как смогу, сегодня не обещаю.
А вообще крайне рекомендуется пользоваться xerses. И сильно быстрее, и косяков меньше из-за опенсорсности. |
|
|
|
Мелкомягкий парсер умирает при виде строки типа "<speed>.15</speed>".
Добавление ведущего нуля не решает проблему. Всё равно ошибка:
Element content is invalid according to the DTD/Schema.'#$D#$A'Expecting: {http://www.topografix.com/GPX/1/1}ageofdgpsdata, {http://www.topografix.com/GPX/1/1}dgpsid, {http://www.topografix.com/GPX/....
Line: 31
<speed>0.15</speed>
Похоже, это глюк не собственно мелкомягкого парсера, а его провайдера xmldom. Так как GPSMapEdit этот трек загружает (а он умеет использовать только msxml, зато использует его напрямую). Если я всё правильно понимаю, то баг исчезнет не раньше, чем перейти на более новую версию Delphi, так как провайдер поставляется со средой.
Так что workaround один, пользоваться xerces. Это даже не workaround в привычном смысле, это просто рекомендуется изо всех сил.
Правда есть одна непонятка. В файле gpx везде отсутствуют ведущие нули в числовых значениях. Что конечно может и допустимо, но только странно, ибо у меня писалось до последнего запуска всё с ведущими нулями.
Впрочем, изменения в репо всё же внёсу, сделаю получение текста ошибки и выдачу его в виде исключения. А то запускать верификатор gpx на этом треке бессмысленно, ибо он основан на xerces и (если поправить ссылку на SasGpxExtensionsv1.xsd) сообщает только о незаконном теге speed. |
|
|
(0005344)
|
Tolik
|
05-02-2012 17:07
|
|
Так давайте включим эти херсы в дистрибутив и закроем вопрос.
Ну и что, что лишние 2 мб. При нынешних ценах на интернет и на диски это не имеет значения. |
|
|
(0005345)
|
Tolik
|
05-02-2012 17:08
(edited on: 05-02-2012 17:09) |
|
Я думаю, этот парсер падает от того, что в региональных настройках у вас десятичная запятая, а не точка. У меня вот не падает (у меня точка).
|
|
|
|
Пусть пункт повисит, не закрывайте. Глаза мне помозолит. Погляжу может чего в провайдере подкрутить можно. А xerces можно будет включить в новый релиз, реально не вижу смысла совать его в ночнушки. |
|
|
|
Отключил (только для msxml) дополнительные проверки (валидатор) при загрузке файла xml. На приаттаченном файле msxml стал работать. |
|
|
(0005348)
|
Tolik
|
05-02-2012 18:31
|
|
А гипотезу про региональные настройки проверили? |
|
|
|
Региональные настройки влияли только на обрезание ведущих нулей в числах в логе gpx. Там был мой глупый косяк, что я сравнивал разделитель с текущим системным, а не с тем, который использовался строчкой выше для конвертации. Заодно ещё в паре мест поправил. |
|
|
(0005352)
|
Tolik
|
06-02-2012 04:29
|
|
Ну, ведущие нули не очень-то и нужны, наверно.
А дурацкая идея мелкомягких сделать для России десятичную запятую очень часто приводит к проблемам. Когда я был маленький, :) все отлично знали: на компьютере надо писать через точку. И все были довольны, никаких проблем это не вызывало. А вот молодое поколение часто даже не догадывается, что бывают нерусские форточки и другие (правильные!) региональные настройки.
Так что, проблема решена?
Да ладно, закрывайте сами, когда считаете нужным. |
|