Порядок импорта
Порядок импорта
Как уже было сказано выше, элементы xsl:import должны всегда быть первыми дочерними элементами xsl:stylesheet. Порядок, в котором они находятся в преобразовании, определяет порядок импорта внешних модулей следующим образом.
? Порядок импорта основного преобразования всегда старше порядка импорта внешнего преобразования.
? В случае, если преобразование импортирует несколько внешних модулей, порядок импорта преобразований, которые импортируются раньше, младше порядка импорта последующих модулей.
? Порядок импорта преобразования, включенного в основное при помощи элемента xsl:include, равен порядку импорта основного преобразования.
Эти правила могут быть проиллюстрированы следующими примерами.
Рассмотрим преобразование alpha.xsl, которое импортирует преобразования bravo.xsl и сharlie.xsl и включает преобразование delta.xsl.
Листинг 4.14. Фрагмент преобразования alpha.xsl
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="bravo.xsl"/>
<xsl:import href="charlie.xsl"/>
<xsl:import href="delta.xsl"/>
<!-- ... -->
</xsl:stylesheet>
В соответствии с первым правилом, порядок импорта основного преобразования старше порядка импорта внешних модулей, значит alpha.xsl старше bravo.xsl и charlie.xsl. Далее, согласно второму правилу порядок импорта преобразования bravo.xsl младше порядка charlie.xsl, поскольку оно импортируется первым. Преобразование delta.xsl будет иметь порядок импорта такой же, как и у основного преобразования alpha.xsl. Таким образом, порядок импорта в этом примере будет иметь следующий вид:
bravo.xsl
charlie.xsl
alpha.xsl delta.xsl
Преобразование bravo.xsl будет самым младшим, а преобразования alpha.xsl и delta.xsl — самыми старшими.
Заметим, что импортируемые преобразования могут и сами импортировать другие модули. В этих случаях вычисление порядка импорта несколько усложняется.
Техническая рекомендация 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. Обход дерева импорта преобразований
В соответствии с правилами, левые ветки дерева будут младше правых, вершины, находящиеся ближе к корню, будут старше тех, которые дальше от него, включенные преобразования имеют тот же приоритет, что и у родителей.
Таким образом, порядок импорта преобразований от младших к старшим будет выглядеть следующим образом:
delta.xsl
echo.xsl
bravo.xsl foxtrot.xsl
golf.xsl
hotel.xsl india.xsl
charlie.xsl
alpha.xsl
Порядок, в котором импортируются модули, непосредственным образом влияет на различные аспекты преобразования. Эффект, который оказывает порядок импорта на те или иные элементы, будет подробно описан при их рассмотрении — сейчас же мы их просто коротко перечислим.
? xsl:attribute-set — порядок импорта используется для определения главенства элементов xsl:attribute, включенных в разные именованные списки атрибутов, но создающих атрибуты с одинаковыми именами.
? xsl:namespace-alias — в случае, если в преобразовании определяются несколько псевдонимов префиксов пространств имен, процессор использует самый старший в порядке импорта псевдоним.
? xsl:output — эти элементы объединяются процессором. В случае конфликтов, например, когда в разных элементах xsl:output атрибуты определены по-разному, процессор должен использовать старшее в порядке импорта определение.
? xsl:strip-space и xsl:preserve-space — в этих элементах порядок импорта также используется для разрешения конфликтов: выигрывают определения со старшим порядком импорта.
? xsl:template — порядок импорта используется для разрешения конфликтов, которые возникают в случаях, когда один узел может быть обработан несколькими шаблонами. Шаблон, содержащийся в преобразовании с младшим порядком импорта, будет просто исключен из рассмотрения.
? xsl:variable и xsl:param — порядок импорта используется при обращении к глобальным переменным в случае, если в разных преобразованиях существуют разные определения переменной с одним именем. В подобной ситуации будет использована переменная со старшим порядком импорта.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Оптимальный порядок
Оптимальный порядок Используя браузерные префиксы, важно не забывать о порядке, в котором перечисляются свойства. Можно заметить, что в предыдущем примере сначала написаны префиксные свойства, за которыми следует беспрефиксное свойство.Зачем ставить подлинное
Невидимый порядок
Невидимый порядок Естественно, все мы ищем разные виды порядка, и пути поиска у каждого свои. В глазах дизайнера порядок выглядит несколько отличным от того, как его представляет себе обыватель. Благодаря профессиональному навыку мы можем замечать как визуальные, так и
Порядок слов
Порядок слов Можно указывать не только расстояние между словами, но и их порядок.Слова следуют в определенном порядке на нужном расстоянииЕсли вы точно знаете не только расстояние, но и порядок слов запроса, в котором они должны быть приведены на интересных вам
20.6.2 Лексикографический порядок
20.6.2 Лексикографический порядок Переменные в MIB упорядочены лексикографически. Для сравнения двух идентификаторов:1.3.6.1.2.1.2.2.1.19.31.3.6.1.2.1.2.2.1.21.2нужно выполнить:? Начать слева.? Сравнивать значения, пока не будет найдено первое отличие.? Число с большим значением определяет
Автоматизация импорта и экспорта
Автоматизация импорта и экспорта Назначение спецификации – сохранение параметров импорта или экспорта данных, необходимых программе Access для повторения той или иной операции без участия мастера. Причем в спецификации можно изменить имя исходного или конечного файла
1.2.1. Порядок выполнения инструкций
1.2.1. Порядок выполнения инструкций По умолчанию инструкции программы выполняются одна за другой, последовательно. В программеint main(){readIn();sort();compact();print();return 0;}первой будет выполнена инструкция readIn(), за ней sort(), compact() и наконец print().Однако представим себе ситуацию, когда
Порядок поиска неисправностей
Порядок поиска неисправностей Рекомендации тут тянут на толстый том – то ли руководства по эксплуатации, то ли сборника детективных рассказов. Тем не менее попробуем описать примерный алгоритм действий.Если компьютер регулярно виснет или «не любит» какого-то
Порядок обработки сообщений
Порядок обработки сообщений Ниже описаны последовательности обработки командных сообщений объектами различных классов.Главное окно однооконного приложенияБольшинство командных сообщений передаются главному окну приложения. Для приложений, имеющих однооконный
Порядок просмотра документа
Порядок просмотра документа Узлы дерева XML-документа находятся в определенном порядке, который называется порядком просмотра документа (англ. document order). Этот порядок важен для вычисления XPath-вырэжений, которые оперируют множествами узлов. Несмотря на то, что эти множества
3.2.2 Порядок вычисления
3.2.2 Порядок вычисления Порядок вычисления подвыражений в выражении неопределен. Напримерint i = 1; v[i] = i++;может вычисляться или как v[1]=1, или как v[2]=1. При отсутствии ограничений на порядок вычисления выражения может генерироваться более хороший код. Было бы замечательно, если
Порядок подбора персонала
Порядок подбора персонала В данном разделе мы рассмотрим основные теоретические вопросы, касающиеся подбора
Особенности импорта разных графических форматов
Особенности импорта разных графических форматов Импорт файлов, сохраненных в некоторых графических форматах, имеет определенные особенности. Давайте поговорим о них подробнее.Macromedia FireworksПакет создания Web-графики Macromedia Fireworks — в чем-то "коллега" Flash. Он тоже создает
Полезные советы по подготовке видео для импорта
Полезные советы по подготовке видео для импорта Напоследок стоит привести несколько полезных советов, которые помогут нам правильно подготовить видеоклипы для импорта их во Flash. Они особенно полезны, если мы готовим материалы, предназначенные для распространения через
Полезные советы по подготовке звука для импорта
Полезные советы по подготовке звука для импорта Советы по подготовке цифрового звука практически совпадают с рекомендациями, данными в главе 16 для цифрового видео.? Удаляйте шумы из фонограммы.? Выставьте приемлемое значение громкости.? Обрежьте ненужные "хвосты".