01.11.2008, 09:58 | #1 |
Участник
|
Здравствуйте!
Имеется функция проверки соответствия XML-файла XSD-схеме. <div class='CALtop'>C/AL</div><div class='CAL'> _dom Automation 'Microsoft XML, v6.0'.DOMDocument60 _sch Automation 'Microsoft XML, v6.0'.XMLSchemaCache60 _xml_path Text 250 _type Code 20 _version Code 20 _error_reason Text 1024 //_xsd_path - путь к XSD-файлу //_xml_path - путь к XML-файлу //_error_reason - возврат по ссылке текста ошибки CLEAR(_dom); CREATE(_dom); _dom.async := FALSE; CLEAR(_sch); CREATE(_sch); _sch.add(_namespace, _xsd_path); _dom.schemas := _sch; _dom.load(_xml_path); CLEAR(_error_reason); IF _dom.parseError.errorCode <> 0 THEN BEGIN _error_reason := _dom.parseError.reason; END; EXIT(_dom.parseError.errorCode); </div> На получении описания ошибки в переменную _error_reason вылетает ошибка --------------------------- Microsoft Business Solutions-Navision --------------------------- Длина текстовой строки превосходит размер буфера строки. --------------------------- ОК --------------------------- т.е. длина строки превышает 1024 символа и на сколько я понимаю в принципе навиженом ничего сделать не получится. Как можно обойти ситуацию и скажем обрезать сообщение до 1024 символов, но без жутких извращений типа написания какой-то внешеней программы через которую навижен будет общаться с Microsoft XML? |
|
04.11.2008, 20:42 | #2 |
Участник
|
Цитата:
Сообщение от grif
Здравствуйте!
Имеется функция проверки соответствия XML-файла XSD-схеме. На получении описания ошибки в переменную _error_reason вылетает ошибка --------------------------- Microsoft Business Solutions-Navision --------------------------- Длина текстовой строки превосходит размер буфера строки. --------------------------- ОК --------------------------- т.е. длина строки превышает 1024 символа и на сколько я понимаю в принципе навиженом ничего сделать не получится. Как можно обойти ситуацию и скажем обрезать сообщение до 1024 символов, но без жутких извращений типа написания какой-то внешеней программы через которую навижен будет общаться с Microsoft XML? |
|
05.11.2008, 08:58 | #3 |
Участник
|
функции обрезания строки вызывают ту же ошибку
|
|
05.11.2008, 09:37 | #4 |
MCTS
|
Попробуйте вместо
_error_reason := _dom.parseError.reason; Использовать _BigText.addtext(_dom.parseError.reason); _BigText.GETSUBTEXT(_error_reason,1,1024); |
|
05.11.2008, 10:38 | #5 |
Участник
|
|
|
05.11.2008, 10:49 | #6 |
Участник
|
Цитата:
ну так я и использовал COPYSTR. Видимо ожидается что в неё передастся строка не более 1024 символов |
|
05.11.2008, 18:06 | #7 |
Участник
|
Цитата:
Попробуйте сократить размер до 250 и поссмотреть результат. Если что - бейте на 4 строки и ... |
|