powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Обработка base64 большого размера
5 сообщений из 5, страница 1 из 1
Обработка base64 большого размера
    #34410065
as361
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго дня/ночи.
Потихоньку начали работать на с# с xml и столкнулись вот с такой проблемой:

Есть входные сообщения, содержащие элемент в кодировке base64 размером порядка 10-200 Mb.
Надо провалидировать эти сообщения на соответствие xsd схемам.
Все идет хорошо до тех пор, пока валидатор (мы используем XmlValidatingReader) не доходит до этого самого base64 элемента. При его чтении отжирается объем памяти раз в 10..12 больше чем размер этого элемента. Если размер исходного сообщения > 60..70 Mb, происходит System.OutOfMemoryException и обработка прекращается.
Вопрос: нет ли каких-либо способов все таки выполнить валидацию таких здоровенных base64 элементов?

Спасибо.
...
Рейтинг: 0 / 0
Обработка base64 большого размера
    #34411326
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вырезать, а потом – валидировать.
...
Рейтинг: 0 / 0
Обработка base64 большого размера
    #34413748
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
as361Доброго дня/ночи.
Потихоньку начали работать на с# с xml и столкнулись вот с такой проблемой:

Есть входные сообщения, содержащие элемент в кодировке base64 размером порядка 10-200 Mb.
Надо провалидировать эти сообщения на соответствие xsd схемам.
Все идет хорошо до тех пор, пока валидатор (мы используем XmlValidatingReader) не доходит до этого самого base64 элемента. При его чтении отжирается объем памяти раз в 10..12 больше чем размер этого элемента. Если размер исходного сообщения > 60..70 Mb, происходит System.OutOfMemoryException и обработка прекращается.
Вопрос: нет ли каких-либо способов все таки выполнить валидацию таких здоровенных base64 элементов?

Спасибо.

Используйте поточные средства обработки данных. (XmlTextReader например)
...
Рейтинг: 0 / 0
Обработка base64 большого размера
    #34414344
as361
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
maXmo
вырезать, а потом – валидировать

Поподробнее, пожалуйста ...
Открыть файл (как простой текстовый файл, не XmlReader'ом), дойти до элемента с base64, перекодировать и проверить?
Т.е. предлагается самостоятельно реализовать некое подобие элементарного парсера?


Код: plaintext
1.
mayton
Используйте поточные средства обработки данных. (XmlTextReader например)

C XmlTextReader такая же беда: пока читаем небольшие текстовые элементы (XmlTextReader.Read()) - все ОК. Как только доходим до здоровенного base64 - вызов Read() отжирает немерянный объем памяти и опа - OutOfMemoryException.
...
Рейтинг: 0 / 0
Обработка base64 большого размера
    #34415089
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не перекодировать, а выкинуть нафиг этот здоровенный base64 кусок, ну да что-то типа простенького парсера.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Обработка base64 большого размера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]