Когда я анализирую XSLT в контексте, где вход и выход SAX, создается ли дерево DOM за сценой? - PullRequest
0 голосов
/ 15 августа 2011

Вот пример кода, на который я ссылаюсь:

http://xml.apache.org/xalan-j/usagepatterns.html#sax

Во-первых, обратите внимание, что все, что может быть основано на SAX, основано на SAX в этом коде: и вход, ивыходные данные.

Кроме того, обратите внимание, что объект transformerHandler создается из файла "foo.xsl" и что transformerHandler используется для преобразования из SAX-ввода в SAX ContentHandler, который создает выходные данные.

Я понял, что XSLT требует, чтобы для его работы было построено что-то вроде дерева DOM.

Итак, вот мой вопрос: мне интересно, действительно ли transformerHandler строит что-то вроде DOM?за кадром дерево?Если это так, разве такого рода поражение не ставит целью попытаться остаться в SAX-стране?

1 Ответ

0 голосов
/ 19 августа 2011

Цитирование из http://xml.apache.org/xalan-j/dtm.html

Модель таблицы документов (DTM) - это интерфейс к модели документов, разработанный специально для нужд наших реализаций XPath и XSLT.Мотивация этой модели - оптимизировать производительность и минимизировать объем хранилища.

В частности, DTM позволяет избежать накладных расходов на создание объектов, которые требуются стандартному DOM для представления дерева узлов.DTM использует уникальные целочисленные «дескрипторы» для идентификации узлов, значения целочисленных идентификаторов для представления URL-адресов, локальных имен и расширенных имен, а также целочисленные индексы и ссылки на длину в строковом буфере для представления текстового значения каждого узла.

Другими словами, он не создает дерево DOM, но создает эффективную структуру, которая специально подходит для удовлетворения потребностей XSLT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...