Как SAX API-ите валидират XML спрямо схема/DTD?
Разбирам, че SAX API-ите четат XML документ част по част и не съхраняват прочетените преди това части в паметта. Така че не ми е ясно как API може да потвърди документа, без да го пази в паметта. ??
Как SAX API-ите валидират XML спрямо схема/DTD?
Разбирам, че SAX API-ите четат XML документ част по част и не съхраняват прочетените преди това части в паметта. Така че не ми е ясно как API може да потвърди документа, без да го пази в паметта. ??
Не е необходимо да съхранявате цялото XML дърво в паметта, за да го валидирате. Само онези части, които са валидирани в момента, трябва да бъдат в паметта. Например, ако трябва да потвърдите структура като този root/child*/property*, тогава всъщност са необходими само връзките дете-родител, за да бъдат проверени и следователно трябва да съхраним само предишния елемент, за да проверим това. Разбира се, ако структурата е по-сложна, повече памет ще се използва за проверка на сложни ограничения.