allter: (Default)
[personal profile] allter
XML по своему замечательный формат, поскольку для его обработки требуется всего лишь память, равная максимальной длине всех вложенных тегов + максимальному количеству вложенных тегов (а если требуется обрабатывать не весь документ, а только подэлементы, то и того меньше). Но для того, что бы обрабатывать XML поточно (событийным способом) надо сначала знать, что он, как минимум, well-formed. Т.е. по идее, надо сначала засосать XML куда-нибудь (потенциально гигантского размера), убедиться, что он well-formed, а затем обрабатывать. Тогда как можно выделить специальный тег вроде <error xmlns="streaming_error" />, который бы сигнализировал последующим обработчикам о том, что на предыдущем шаге парсер или обработчик обнаружил условие ошибки.

Т.е. обработчики могут пропускать через себя XML без проверки на валидность, а в случае ошибки сигнализировать последующим обработчикам "ну не шмогла я". Соответственно, последний обработчик в цепочке может, получив эту информацию, в зависимости от заданной логики либо отбрасывать весь уровень XML, предшествующий сообщению об ошибке, либо отбрасывать весь XML документ, в котором содержится ошибка, либо приступить к восстановлению ошибочных данных.

Вопрос: где-нибудь описан стандарт подобного оповещения? Гугление особо ничего не дало.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

allter: (Default)
allter

October 2021

S M T W T F S
     12
3 456789
10111213141516
17181920212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 25th, 2025 09:23 pm
Powered by Dreamwidth Studios