![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
XML по своему замечательный формат, поскольку для его обработки требуется всего лишь память, равная максимальной длине всех вложенных тегов + максимальному количеству вложенных тегов (а если требуется обрабатывать не весь документ, а только подэлементы, то и того меньше). Но для того, что бы обрабатывать XML поточно (событийным способом) надо сначала знать, что он, как минимум, well-formed. Т.е. по идее, надо сначала засосать XML куда-нибудь (потенциально гигантского размера), убедиться, что он well-formed, а затем обрабатывать. Тогда как можно выделить специальный тег вроде <error xmlns="streaming_error" />, который бы сигнализировал последующим обработчикам о том, что на предыдущем шаге парсер или обработчик обнаружил условие ошибки.
Т.е. обработчики могут пропускать через себя XML без проверки на валидность, а в случае ошибки сигнализировать последующим обработчикам "ну не шмогла я". Соответственно, последний обработчик в цепочке может, получив эту информацию, в зависимости от заданной логики либо отбрасывать весь уровень XML, предшествующий сообщению об ошибке, либо отбрасывать весь XML документ, в котором содержится ошибка, либо приступить к восстановлению ошибочных данных.
Вопрос: где-нибудь описан стандарт подобного оповещения? Гугление особо ничего не дало.
Т.е. обработчики могут пропускать через себя XML без проверки на валидность, а в случае ошибки сигнализировать последующим обработчикам "ну не шмогла я". Соответственно, последний обработчик в цепочке может, получив эту информацию, в зависимости от заданной логики либо отбрасывать весь уровень XML, предшествующий сообщению об ошибке, либо отбрасывать весь XML документ, в котором содержится ошибка, либо приступить к восстановлению ошибочных данных.
Вопрос: где-нибудь описан стандарт подобного оповещения? Гугление особо ничего не дало.