Глава 4 Создание образцов выбора
Глава 4
Создание образцов выбора
До сих пор материал книги был достаточно очевиден, за исключением одного: несколько загадочных образцов выбора (match pattern). Мы работали с различными образцами выбора, такими как «/PLANETS» в элементах <xsl:template>, не предлагая систематического объяснения того, как в действительности работают эти образцы, — как в этом случае:
<xsl:template match="/PLANETS">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
.
.
.
</BODY>
</HTML>
</xsl:template>
В этой главе мы рассмотрим все необходимое, что нужно знать для создания образцов выбора в XSLT. Образцы выбора применяются в элементах <xsl:template>, <xsl:key> и <xsl:number>; с элементом <xsl:template> мы работали с самого начала книги, элемент <xsl:key> мы увидим в главе 9 и элемент <xsl:number> — в главе 5. В частности, для выбора по образцу у элементов <xsl:template> и <xsl:key> используется атрибут match, а у элемента <xsl:number> — атрибуты count и from.
Образцы выбора можно также применять в атрибуте select таких элементов, как <xsl:apply-templates>, <xsl:value-of>, <xsl:for-each> и <xsl:copy-of>. Здесь важно отметить один момент: атрибут select этих элементов обладает большими возможностями, чем атрибуты match, count и from элементов <xsl:template>, <xsl:key> и <xsl:number>, потому что в select можно использовать полные выражения XPath, а не только образцы выбора.
Образцы выбора являются подмножеством выражений XPath, то есть все образцы выбора являются допустимыми выражениями XPath, но не все выражения XPath являются образцами выбора. Единственные выражения XPath, которые могут быть образцами, — это выражения, возвращающие набор узлов (даже набор, состоящий из одного узла) и использующие пути, которые задают только дочерние узлы или узлы атрибутов.
Образцы выбора определены в самой рекомендации XSLT, в то время как выражения XPath определены в рекомендации XPath (www.w3.org/TR/xpath); тем не менее, эти рекомендации совместимы, потому что все образцы выбора являются одновременно выражениями XPath.
СОЗДАНИЕ ПОЛНЫХ ВЫРАЖЕНИЙ XPATH
В главе 7 «Работа и изучение XPath» показано, как создавать полные выражения XPath. Полные выражения XPath можно применять в XSLT в следующих местах: в атрибуте select элементов <xsl:apply-templates>, <xsl:value-of>, <xsl:for-each>, <xsl:param>, <xsl:variable>, <xsl:with-param>, <xsl:copy-of> и <xsl:sort>; в значениях шаблонов атрибутов; в атрибуте test элементов <xsl:if> и <xsl:when>; в значении атрибута элемента <xsl:number> и в предикатах образцов выбора.
Чтобы еще больше все усложнить, следует сказать, что выражения XPath можно использовать в специальной, необязательной части (и только в этой части) образцов выбора: в предикатах. Как мы увидим в этой главе, предикаты — это выражения XPath, которые вычисляются либо в значения «истина/ложь», либо в числа, заключаемые в квадратные скобки, [ и ]. Например, образец PLANET[NAME="Venus"] выбирает дочерние узлы <PLANET> контекстного узла, у которых есть дочерние узлы <NAME> с текстом «Venus». Выражения внутри [ и ] представляют собой настоящие выражения XPath с известными ограничениями, которые будут рассмотрены в этой главе.
Безусловно, для создания образцов выбора необходим опыт, поэтому в данной главе приводится много примеров.
MICROSOFT И НЕСТАНДАРТНЫЕ ОБРАЗЦЫ ВЫБОРА
Microsoft поддерживает образцы выбора в своем процессоре XML MSXML3, но есть еще кое-что, о чем вам следует знать: с образцами выбора Microsoft использует также весьма много нестандартного, не используемого W3C синтаксиса. В этой главе я собираюсь придерживаться официальной, W3C, версии, и если вам доведется читать документацию Microsoft об образцах выбора, имейте в виду, что многое из этой документации относится только к реализации Microsoft.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Создание образцов выбора
Создание образцов выбора Как вы могли ожидать, исходя из того, что "child::MASS" можно представить в виде "MASS" и применения шаблонов, таких как "/", "/PLANETS" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.Образцы выбора (match pattern)
Выражения выбора
Выражения выбора Выражение выбора — это фактически несколько условных выражений, объединенных в одном. Его формат иллюстрирует листинг 14.10. Листинг 14.10 switch (<исходное выражение>) { case <значение 1> : <блок 1> [break;] [case <значение 2> : <блок 2> [break;]] <… другие секции
3.2. Сопоставление образцов
3.2. Сопоставление образцов При замене одного фрейма другим не имеет смысла начинать весь процесс согласования заново. Но каким образом можно сохранить то, что было уже ранее установлено? Будем рассматривать лишь тот случай, когда при отсутствии специальных знаний
Выражения выбора
Выражения выбора Выражение выбора — это фактически несколько условных выражений, объединенных в одном. Его формат иллюстрирует листинг 14.10. Листинг 14.10 switch (<исходное выражение>) { case <значение 1> : <блок 1> [break;] [case <значение 2> : <блок 2> [break;]] <… другие секции
Ячейки образцов материалов
Ячейки образцов материалов По умолчанию при работе над новой сценой Material Editor (Редактор материалов) показывает шесть ячеек с образцами материалов. Щелчок на ячейке активизирует ее и изменяет цвет ее границы на белый. Если ячейка образца содержит материал, который
3.14.9. Еще несколько образцов
3.14.9. Еще несколько образцов Завершим наш список несколькими выражениями из категории «разное». Как обычно, почти все эти задачи можно решить несколькими способами.Пусть нужно распознать двузначный почтовый код американского штата. Проще всего, конечно, взять выражение
10.4. Операторы выбора
10.4. Операторы выбора Инструкции case и select технически не являются циклами, поскольку не предусматривают многократное исполнение блока кода. Однако, они, как и циклы, управляют ходом исполнения программы, в зависимости от начальных или конечных условий.case (in) / esacКонструкция
Шаг первый – получение образцов почерка
Шаг первый – получение образцов почерка Требования к образцу почерка, представленному для графологического анализа, общеприняты в графологии. Образец должен быть выполнен на гладком листе не разлинованной бумаги стандартного размера. Текст должен быть достаточно
Шаг второй – анализ образцов
Шаг второй – анализ образцов Графологи тщательно анализируют имеющиеся тексты с тем, чтобы выявить признаки почерка. Этот процесс не такой простой, как может показаться на первый взгляд. Он требует внимания, тщательности и опыта. Ни один признак, как правило, не
ГЛАВА 03 КРИТЕРИИ ВЫБОРА ИНФОРМАЦИОННЫХ СИСТЕМ
ГЛАВА 03 КРИТЕРИИ ВЫБОРА ИНФОРМАЦИОННЫХ СИСТЕМ Проработав в области информационных технологий более 10 лет, начинаешь забывать, что еще далеко не все люди на Земле занимаются компьютерными технологиями. Есть немало тех, кто не очень разбирается в этом вопросе, но
Типы образцов Flash
Типы образцов Flash Прежде всего нам необходимо познакомиться с типами образцов, поддерживаемых Flash. Каждый из этих типов обладает специфическими свойствами и имеет особую область применения. Всего этих типов пять.Обычно тип образца задается при его создании, но
Создание образцов
Создание образцов Есть два пути создания образца. Во-первых, мы можем нарисовать на рабочем листе какую-либо фигуру, а потом превратить ее в образец и поместить в библиотеку. Во-вторых, мы можем создать "пустой" образец и поместить его в библиотеку, а уже потом "наполнить"
Совместное использование образцов и библиотек
Совместное использование образцов и библиотек В свете последних тенденций глобализации и международного разделения труда будет нелишним разговор о совместном использовании образцов и целых библиотек. Речь в данном разделе пойдет о том, как сделать наши образцы
Использование образцов-клипов
Использование образцов-клипов А теперь давайте сделаем вот что. Запустим воспроизведение созданной нами составной анимации в отдельном окне, выбрав пункт Test Movie меню Control. После этого в окне просмотра фильма отключим пункт-выключатель Loop в меню Control, чтобы убрать
Выражения выбора
Выражения выбора Выражение выбора — это фактически несколько условных выражений, объединенных в одном.Его формат таков: switch (<Условиe>) { case <Значение 1>: <Блок 1> [break;] [case <Значение 2>: <Блок 2> [break;]] <… Другие секции case> [default: <Блок, исполняемый для остальных