Валиков Алексей Н.
Шрифт:
Порядок импорта
Как уже было сказано выше, элементы
□ Порядок импорта основного преобразования всегда старше порядка импорта внешнего преобразования.
□ В случае, если преобразование импортирует несколько внешних модулей, порядок импорта преобразований, которые импортируются раньше, младше порядка импорта последующих модулей.
□ Порядок импорта преобразования, включенного в основное при помощи элемента
Эти правила могут быть проиллюстрированы следующими примерами.
Рассмотрим преобразование
– ->
В соответствии с первым правилом, порядок импорта основного преобразования старше порядка импорта внешних модулей, значит
Преобразование
Заметим, что импортируемые преобразования могут и сами импортировать другие модули. В этих случаях вычисление порядка импорта несколько усложняется.
Техническая рекомендация XSLT предлагает решать эту проблему построением логического дерева импорта.
Рассмотрим следующую схему включений и импорта (табл 4.1).
Таблица 4.1. Включение и импорт преобразований
Преобразование | Импортирует | Включает |
---|---|---|
alpha.xsl | bravo.xsl charlie.xsl | |
bravo.xsl | delta.xsl echo.xsl | foxtrot.xsl |
charlie.xsl | golf.xsl hotel.xsl | |
hotel.xsl | india.xsl |
Этой схеме будет соответствовать логическое дерево импорта на рис. 4.1.
Рис. 4.1. Обход дерева импорта преобразований
В соответствии с правилами, левые ветки дерева будут младше правых, вершины, находящиеся ближе к корню, будут старше тех, которые дальше от него, включенные преобразования имеют тот же приоритет, что и у родителей.
Таким образом, порядок импорта преобразований от младших к старшим будет выглядеть следующим образом:
Порядок, в котором импортируются модули, непосредственным образом влияет на различные аспекты преобразования. Эффект, который оказывает порядок импорта на те или иные элементы, будет подробно описан при их рассмотрении — сейчас же мы их просто коротко перечислим.
□
□
□