Создание узлов элементов

Создание узлов элементов

В четвертой главе мы уже разобрали один из способов создания в выходящем документе узлов элементов, а именно — использование литеральных элементов результата, которые в неизменном виде копируются процессором в выходящее дерево. Этот способ прост, понятен и удобен, однако есть две основные проблемы, которые он не может решить.

? Что, если в выходящем документе требуется создать элемент с заранее неизвестным (например, вычисляемым во время выполнения) именем?

? Как создать элемент, принадлежащий пространству имен, известному обрабатывающему процессору?

Поясним на примерах суть и той и другой проблемы.

Представим себе входящий документ вида

<element name="a">

 <element name="b"/>

</element>

который нужно преобразовать во что-нибудь наподобие

<а>

 <b/>

</а>

Совершенно очевидно, что литеральными элементами тут не обойдешься — мы не знаем заранее имена элементов выходящего документа, ибо они определяются значениями атрибутов входящего.

Представим теперь, что нам в XSLT-преобразовании необходимо сгенерировать другое XSLT-преобразование. Скажем из элемента вида

<remove element="a"/>

нужно получить шаблон

<xsl:template match="a"/>

Беда в том, что литеральные элементы не могут быть использованы для создания, скажем, элемента xsl:template по той причине, что любой элемент с локальной частью имени template, принадлежащий пространству имен XSLT будет рассматриваться процессором, как элемент самого преобразования. Очевидно, что

<xsl:template match="remove">

 <xsl:template match="{@element}"/>

</xsl:template>

будет некорректным определением. He поможет и смена префикса, ведь принадлежность пространству имен определяется не им.

Для того чтобы решить эти проблемы (главным образом, первую), XSLT предоставляет возможность создавать узлы элементов при помощи элемента xsl:element.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Создание пользовательских элементов управления Windows Forms

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Создание пользовательских элементов управления Windows Forms Платформа .NET предлагает для разработчиков очень простой способ создания пользовательских элементов интерфейса. В отличие от (теперь уже считающихся устаревшими) элементов управления ActiveX, для элементов


Глава 4 Создание специализированных конструктивных элементов

Из книги ArchiCAD 11 автора Днепров Александр Г

Глава 4 Создание специализированных конструктивных элементов • Настройка параметров этажей• Формирование плана этажаМатериал этой главы является основой для понимания принципов разработки проектов в среде системы ArchiCAD. Здесь будут рассмотрены методы создания


Глава 5 Создание специализированных конструктивных элементов

Из книги ArchiCAD. Начали! автора Орлов Андрей Александрович

Глава 5 Создание специализированных конструктивных элементов В этой главе содержатся сведения, являющиеся основой для понимания принципов разработки проектов в среде ArchiCAD. Здесь будут рассмотрены методы создания конструктивно-планировочной структуры архитектурного


7.3. Создание элементов слайда

Из книги Основы информатики: Учебник для вузов автора Малинина Лариса Александровна

7.3. Создание элементов слайда Создание текстового поляВвод текста на слайд осуществляется в специальных полях. Обычно при создании слайд уже имеет текстовые поля. При желании можно применить к слайду другую разметку, содержащую другие текстовые поля, но можно и вставить


Создание Web-форм и элементов управления

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. автора Дронов Владимир

Создание Web-форм и элементов управления Настала пора рассмотреть средства языков HTML и CSS, предназначенные для создания Web-форм и элементов управления, и возможности объектов Web- обозревателя и библиотеки Ext Core для работы с ними. Их довольно много. Создание Web-форм Для


Создание элементов управления

Из книги Моделирование бизнес-процессов с BPwin 4.0 автора Маклаков Сергей Владимирович

Создание элементов управления Большинство элементов управления HTML создают посредством одинарного тега <INPUT>. Какой именно элемент управления следует создать, указывают с помощью необязательного атрибута TYPE этого тега. Некоторые элементы управления, такие как


Создание свободно позиционируемых элементов

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Создание свободно позиционируемых элементов Свободные элементы Web-страницы создают с помощью особых атрибутов стиля CSS, которые мы сейчас рассмотрим.Самый важный атрибут стиля — position. Он задает способ позиционирования элемента Web-страницы:position: static|absolute|relative|fixed|inheritЭтот


4.4. Упражнение 4. Создание диаграммы узлов

Из книги XSLT автора Хольцнер Стивен

4.4. Упражнение 4. Создание диаграммы узлов Перед выполнением упражнения 4 внимательно прочитайте подраздел 1.2.5.Выберите меню Diagram/Add Node Tree. В первом диалоге гида Node Tree Wizard внесите имя диаграммы, укажите диаграмму корня дерева и количество уровней (рис. 4.4.1). Рис. 4.4.1.


Создание Web-форм и элементов управления 

Из книги Технология XSLT автора Валиков Алексей Николаевич

Создание Web-форм и элементов управления  Настала пора рассмотреть средства языков HTML и CSS, предназначенные для создания Web-форм и элементов управления, и возможности объектов Web-обозревателя и библиотеки Ext Core для работы с ними. Их довольно


Создание элементов управления 

Из книги автора

Создание элементов управления  Большинство элементов управления HTML создают посредством одинарного тега <INPUT>. Какой именно элемент управления следует создать, указывают с помощью необязательного атрибута TYPE этого тега. Некоторые элементы управления, такие как


Создание свободно позиционируемых элементов

Из книги автора

Создание свободно позиционируемых элементов Свободные элементы Web-страницы создают с помощью особых атрибутов стиля CSS, которые мы сейчас рассмотрим.Самый важный атрибут стиля — position. Он задает способ позиционирования элемента Web-страницы:position: static|absolute|relative|fixed|inheritЭтот


Создание элементов списка:

Из книги автора

Создание элементов списка: <fo:list-item> Затем при помощи элемента <fo:list-item> нужно поместить в список метку и тело элемента списка. В каждом элементе списка должен присутствовать один из этих объектов.С элементом <fo:list-item> можно применять следующие свойства:• общие


Создание тел элементов списка:

Из книги автора

Создание тел элементов списка: <fo:list-item-body> Для включения тела элемента списка служит элемент <fo:list-item-body>. Заметьте, что для форматирования тела элемента списка требуемым вам образом вы можете включить в элемент <fo:list-item-body> объект <fo:block>.С элементом


Создание текстовых узлов

Из книги автора

Создание текстовых узлов Шаблон преобразования может содержать текстовые узлы, которые при выполнении шаблона после обработки пробельных символов будут попросту скопированы в результирующее дерево. Таким образом, для того, чтобы вывести в выходящий документ некоторый


Создание узлов комментариев и инструкций по обработке

Из книги автора

Создание узлов комментариев и инструкций по обработке Элемент xsl:comment Этот элемент задается конструкцией вида:<xsl:comment><!-- Содержимое: шаблон --></xsl:comment>Элемент xsl:comment создает в результирующем дереве узел комментария. Текстом комментария становится результат